Come si può notare alla fine il collegamento che consente di porre in
relazione i file ed i processi è effettuato attraverso i dati mantenuti nella
-struttura \kstruct{files\_struct}, essa infatti contiene alcune informazioni
+struttura \kstruct{files\_struct} essa infatti contiene alcune informazioni
essenziali come:
\begin{itemize*}
\item i flag relativi ai file aperti dal processo.
\item il numero di file aperti dal processo.
-\item una tabella di puntatori alla relativa voce nella \itindex{file~table}
- \textit{file table} per ciascun file aperto.
+\item la \itindex{file~descriptor~table} \textit{file descriptor table}, una
+ tabella con i puntatori, per ciascun file aperto, alla relativa voce nella
+ \itindex{file~table} \textit{file table}.
\end{itemize*}
In questa infrastruttura un \textit{file descriptor} non è altro che l'intero
{La funzione ritorna il valore della posizione sul file in caso di successo e
$-1$ per un errore, nel qual caso \var{errno} assumerà uno dei valori:
\begin{errlist}
- \item[\errcode{ESPIPE}] \param{fd} è una pipe, un socket o una fifo.
\item[\errcode{EINVAL}] \param{whence} non è un valore valido.
\item[\errcode{EOVERFLOW}] \param{offset} non può essere rappresentato nel
+ \item[\errcode{ESPIPE}] \param{fd} è una pipe, un socket o una fifo.
tipo \type{off\_t}.
\end{errlist}
ed inoltre \errval{EBADF} nel suo significato generico.}
{La funzione ritorna il numero di byte scritti in caso di successo e $-1$ per
un errore, nel qual caso \var{errno} assumerà uno dei valori:
\begin{errlist}
- \item[\errcode{EAGAIN}] ci si sarebbe bloccati, ma il file era aperto in
+ \item[\errcode{EAGAIN}] ci siq sarebbe bloccati, ma il file era aperto in
modalità \const{O\_NONBLOCK}.
\item[\errcode{EFBIG}] si è cercato di scrivere oltre la dimensione massima
consentita dal filesystem o il limite per le dimensioni dei file del
\item[\errcode{EINVAL}] \param{fd} è un \index{file!speciali} file speciale
che non supporta la sincronizzazione.
\end{errlist}
- ed inoltre \errval{EBADF}, \errval{EROFS} e \errval{EIO} nel loro
+ ed inoltre \errval{EBADF}, \errval{EIO} e \errval{EROFS} nel loro
significato generico.}
\end{funcproto}
sempre $-1$ per un errore, nel qual caso \var{errno} assumerà uno dei
valori:
\begin{errlist}
+ \item[\errcode{EINVAL}] gli argomenti \param{request} o \param{argp} non sono
+ validi.
\item[\errcode{ENOTTY}] il file \param{fd} non è associato con un
dispositivo, o la richiesta non è applicabile all'oggetto a cui fa
riferimento \param{fd}.
- \item[\errcode{EINVAL}] gli argomenti \param{request} o \param{argp} non sono
- validi.
\end{errlist}
ed inoltre \errval{EBADF} e \errval{EFAULT} nel loro significato generico.}
\end{funcproto}