relativi a questi ultimi.
La funzione che permette di abilitare la ricezione dei segnali tramite file
-descriptor è \funcd{signalfd},\footnote{in realtà questa è il nome della
- funzione fornita dalle \acr{glibc}, esistono in realtà due
- versioni, anche se } il cui prototipo è:
+descriptor è \funcd{signalfd},\footnote{in realtà quella riportata è la
+ interfacia alla funzione fornita dalle \acr{glibc}, esistono in realtà due
+ versioni diverse della \textit{system call}, la prima versione,
+ \func{signalfd}, introdotta nel kernel 2.6.22 e disponibile con le
+ \acr{glibc} 2.8 che non supporta l'argomento, ed una seconda versione, \func{signalfd4}, che prende
+ argomenti aggiuntivi, introdotta con il kernel 2.6.27 che è quella che viene
+ sempre usata a partire dalle \acr{glibc} 2.9.} il cui prototipo è:
\begin{prototype}{sys/signalfd.h}
{int signalfd(int fd, const sigset\_t *mask, int flags)}
La funzione consente di creare o modificare le caratteristiche di un file
descriptor speciale su cui ricevere le notifiche della ricezione di
-segnali. Per creare un nuovo file descriptor è necessario passare $-1$ come
-valore per l'argomento \param{fd}, ogni altro valore positivo verrà invece
-interpretato come il numero del file descriptor (che deve esser stato
+segnali. Per creare ex-novo uno di questi file descriptor è necessario passare
+$-1$ come valore per l'argomento \param{fd}, ogni altro valore positivo verrà
+invece interpretato come il numero del file descriptor (che deve esser stato
precedentemente creato sempre con \func{signalfd}) di cui si vogliono
-modificare le caratteristiche. Nel primo caso la funzione ritornerà il nuovo
-file descriptor e nel secondo caso \param{fd}, in caso di errore verrà invece
-restituito $-1$.
+modificare le caratteristiche. Nel primo caso la funzione ritornerà il valore
+del nuovo file descriptor e nel secondo caso il valore indicato
+con \param{fd}, in caso di errore invece verrà restituito $-1$.
L'elenco dei segnali che si vogliono gestire con \func{signalfd} deve essere
specificato tramite l'argomento \param{mask}. Questo deve essere passato come
-puntatore ad una maschera di segnali creata con l'uso delle apposite macro
-illustrate in sez.~\ref{sec:sig_sigset} che indichi su quali segnali si
-intende operare con \func{signalfd}, l'elenco può essere modificato da una
-chiamata successiva. Dato che \const{SIGKILL} e \const{SIGSTOP} non possono
-essere intercettati (e non prevedono neanche la possibilità di un gestore) un
-loro inserimento nella maschera verrà semplicemente ignorato, senza generare
-errori.
-
-Infine l'argomento \param{flags} consente di impostare direttamente in fase di
+puntatore ad una maschera di segnali creata con l'uso delle apposite macro già
+illustrate in sez.~\ref{sec:sig_sigset}; la maschera deve indicare su quali
+segnali si intende operare con \func{signalfd}; l'elenco può essere modificato
+con una successiva chiamata a \func{signalfd}. Dato che \const{SIGKILL} e
+\const{SIGSTOP} non possono essere intercettati (e non prevedono neanche la
+possibilità di un gestore) un loro inserimento nella maschera verrà ignorato,
+senza generare errori.
+
+L'argomento \param{flags} consente di impostare direttamente in fase di
creazione due flag per il file descriptor analoghe a quelle che si possono
impostare con \func{open}, evitando una impostazione successiva con
-\func{fcntl}.\footnote{questo è un argomento aggiuntivo introdotto con il
- kernel 2.6.27, in precedenza il valore era nullo }
+\func{fcntl}.\footnote{questo è un argomento aggiuntivo, introdotto con la
+ versione fornita a partire dal kernel 2.6.27, per kernel precedenti il
+ valore deve essere nullo.}
\begin{table}[htb]
\centering