\end{table}
L'interfaccia fornita da \func{signalfd} prevede che la ricezione dei segnali
-sia eseguita leggendo dal file descriptor restituito dalla funzione. La
-lettura fornisce nel buffer indicato come secondo argomento alla funzione
-\func{read} una o più strutture \struct{signalfd\_siginfo} a seconda della
-dimensione dello stesso e del numero di segnali pendenti. Pertanto il buffer
-deve essere almeno di dimensione pari a \code{sizeof(signalfd\_siginfo)}; se
-di dimensione maggiore potranno essere letti in unica soluzione
-
-% TODO trattare qui eventfd, signalfd e timerfd introdotte con il 2.6.22
+sia eseguita leggendo i dati relativi ai segnali pendenti dal file descriptor
+restituito dalla funzione con una normalissima \func{read}. Questi dati
+vengono scritti sul buffer indicato come secondo argomento di \func{read} in
+forma di una sequenza di una o più strutture \struct{signalfd\_siginfo} (la
+cui definizione si è riportata in fig.~\ref{fig:signalfd_siginfo}) a seconda
+sia della dimensione del buffer che del numero di segnali pendenti. Per questo
+motivo il buffer deve essere almeno di dimensione pari a quella di
+\struct{signalfd\_siginfo}, qualora sia di dimensione maggiore potranno essere
+letti in unica soluzione i dati relativi ad eventuali più segnali pendenti,
+fino al numero massimo di strutture \struct{signalfd\_siginfo} che possono
+rientrare nel buffer.
+
+\begin{figure}[!htb]
+ \footnotesize \centering
+ \begin{minipage}[c]{15cm}
+ \includestruct{listati/signalfd_siginfo.h}
+ \end{minipage}
+ \normalsize
+ \caption{La struttura \structd{signalfd\_siginfo}, restituita in lettura da
+ un file descriptor creato con \func{signalfd}.}
+ \label{fig:signalfd_siginfo}
+\end{figure}
+
+Si tenga presente che lettura di una struttura \struct{signalfd\_siginfo}
+relativa ad un segnale pendente è equivalente alla esecuzione di un gestore,
+vale a dire che una volta letta il segnale non sarà più pendente e non potrà
+essere ricevuto, qualora si ripristino le normali condizioni di gestione, né
+da un gestore né dalla funzione \func{sigwaitinfo}.
+
+% TODO trattare qui eventfd, timerfd introdotte con il 2.6.22
% timerfd è stata tolta nel 2.6.23 e rifatta per bene nel 2.6.25
% vedi: http://lwn.net/Articles/233462/
% http://lwn.net/Articles/245533/
% http://lwn.net/Articles/267331/
-\begin{figure}[!phtb]
+
+\begin{figure}[!htb]
+ \footnotesize \centering
+ \begin{minipage}[c]{15cm}
+ \includecodesample{listati/FifoReporter-init.c}
+ \end{minipage}
+ \normalsize
+ \caption{Sezione di inizializzazione del codice del programma
+ \file{FifoReporter.c}.}
+ \label{fig:fiforeporter_code}
+\end{figure}
+
+
+
+\begin{figure}[!htb]
\footnotesize \centering
\begin{minipage}[c]{15cm}
- \includecodesample{listati/FifoReporter.c}
+ \includecodesample{listati/FifoReporter-main.c}
\end{minipage}
\normalsize
- \caption{Sezione principale del codice del programma \file{FifoReporter.c}.}
+ \caption{Ciclo principale del codice del programma \file{FifoReporter.c}.}
\label{fig:fiforeporter_code}
\end{figure}