La funzione restituisce il numero di byte copiati da una \textit{pipe}
all'altra (o $-1$ in caso di errore), un valore nullo indica che non ci sono
-byte disponibili da copiare (la funzione in questo caso non si blocca, a
-differenza di quanto avverrebbe per una normale lettura). Un esempio di
-realizzazione del comando \texttt{tee} usando questa funzione, ripreso da
-quello fornito nella pagina di manuale e dall'esempio allegato al pacth
-originale, è riportato in fig.~\ref{fig:tee_example}. Il programma consente di
-copiare il contenuto dello standard input sullo standard output e su un file
-specificato come argomento, il codice completo si trova nel file
-\texttt{tee.c} dei sorgenti allegati alla guida.
-
-% TODO verificare funzionamento, su Ubuntu Feisty non va...
+byte disponibili da copiare e che il capo in scrittura della pipe è stato
+chiuso.\footnote{si tenga presente però che questo non avviene se si è
+ impostato il flag \const{SPLICE\_F\_NONBLOCK}, in tal caso infatti si
+ avrebbe un errore di \errcode{EAGAIN}.} Un esempio di realizzazione del
+comando \texttt{tee} usando questa funzione, ripreso da quello fornito nella
+pagina di manuale e dall'esempio allegato al pacth originale, è riportato in
+fig.~\ref{fig:tee_example}. Il programma consente di copiare il contenuto
+dello standard input sullo standard output e su un file specificato come
+argomento, il codice completo si trova nel file \texttt{tee.c} dei sorgenti
+allegati alla guida.
\begin{figure}[!htbp]
\footnotesize \centering
/* tee loop */
while (1) {
/* copy stdin to stdout */
- len = tee(STDIN_FILENO, STDOUT_FILENO, size, SPLICE_F_NONBLOCK);
+ len = tee(STDIN_FILENO, STDOUT_FILENO, size, 0);
if (len == 0) break;
if (len < 0) {
if (errno == EAGAIN) {