questo caso la funzione ritorna l'errore \macro{EPIPE}. Questo, oltre che per
i tre casi citati nel prototipo, vale anche per tutti quei dispositivi che non
supportano questa funzione, come ad esempio per le \acr{tty}\footnote{altri
- sistemi, usando \macro{SEEK\_SET} in questo caso ritornano il numero di
+ sistemi, usando \macro{SEEK\_SET}, in questo caso ritornano il numero di
caratteri che vi sono stati scritti}. Lo standard POSIX però non specifica
niente al proposito. Infine alcuni device, ad esempio \file{/dev/null}, non
causano un errore ma restituiscono un valore indefinito.
La funzione ritorna 0 in caso di successo e -1 in caso di errore, nel qual
caso i codici restituiti in \var{errno} sono:
\begin{errlist}
- \item \macro{EINVAL} \param{fd} è un file speciale che non supporta la
+ \item[\macro{EINVAL}] \param{fd} è un file speciale che non supporta la
sincronizzazione.
\end{errlist}
ed inoltre \macro{EBADF}, \macro{EROFS} e \macro{EIO}.
di \var{fstat} come i tempi del file).
-Si tenga presente che questo non comporta la sincronizzazione della directory
-che contiene il file (e scrittura della relativa voce su disco) che deve
-essere effettuata esplicitamente\footnote{in realtà con il filesystem
- \acr{ext2}, quando questo viene montato con l'opzione \cmd{sync}, il kernel
- provvede anche alla sincronizzazione automatica delle voci delle
- directory.}.
+Si tenga presente che questo non comporta la sincronizzazione della
+directory che contiene il file (e scrittura della relativa voce su
+disco) che deve essere effettuata esplicitamente\footnote{in realtà per
+ il filesystem \acr{ext2}, quando lo si monta con l'opzione \cmd{sync},
+ il kernel provvede anche alla sincronizzazione automatica delle voci
+ delle directory.}.
\subsection{La funzioni \func{dup} e \func{dup2}}
un file descriptor. Per far questo si usa la funzione \func{dup} il cui
prototipo è:
\begin{prototype}{unistd.h}{int dup(int oldfd)}
-
La funzione crea una copia del file descriptor \param{oldfd}.
La funzione ritorna il nuovo file descriptor in caso di successo e -1 in
caso di errore, nel qual caso \var{errno} viene settata ad uno dei valori:
\begin{errlist}
- \item \macro{EBADF} \param{oldfd} non è un file aperto.
- \item \macro{EMFILE} si è raggiunto il numero massimo consentito di file
+ \item[\macro{EBADF}] \param{oldfd} non è un file aperto.
+ \item[\macro{EMFILE}] si è raggiunto il numero massimo consentito di file
descriptor aperti.
\end{errlist}
\end{prototype}