X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=fileio.tex;h=bab3ca2a867747ce50f91d90bace3a99fad6e226;hp=6c0a30e45472a9b711b7f509635d5e5fcdf81474;hb=c01748fa2f24d5ecfe61d2e3ec94b71dbf966e42;hpb=5e7576925418aee6a7fdd1eb14f2ee8b65aee305 diff --git a/fileio.tex b/fileio.tex index 6c0a30e..bab3ca2 100644 --- a/fileio.tex +++ b/fileio.tex @@ -1,6 +1,6 @@ %% fileio.tex (merge fileunix.tex - filestd.tex) %% -%% Copyright (C) 2000-2012 Simone Piccardi. Permission is granted to +%% Copyright (C) 2000-2013 Simone Piccardi. Permission is granted to %% copy, distribute and/or modify this document under the terms of the GNU Free %% Documentation License, Version 1.1 or any later version published by the %% Free Software Foundation; with the Invariant Sections being "Un preambolo", @@ -121,13 +121,14 @@ che il kernel mantiene per ciascun file e ciascun processo. 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 @@ -178,7 +179,7 @@ tab.~\ref{tab:file_std_files}. \itindex{standard~output} \textit{standard output}.\\ \const{STDERR\_FILENO} & \textit{file descriptor} dello \textit{standard - error}\\ + error}.\\ \hline \end{tabular} \caption{Costanti definite in \headfile{unistd.h} per i file standard.} @@ -495,7 +496,7 @@ si tronca il file con \const{O\_TRUNC} verranno impostati soltanto il e viene emulata, per questo possono verificarsi \itindex{race~condition} \textit{race condition} con una sovrapposizione dei dati se - più di un processo scrive allo stesso tempo. \\ + più di un processo scrive allo stesso tempo.\\ \const{O\_ASYNC} & Apre il file per l'I/O in modalità asincrona (vedi sez.~\ref{sec:signal_driven_io}). Quando è impostato viene generato il segnale \signal{SIGIO} @@ -753,9 +754,9 @@ funzione di sistema \funcd{lseek}, il cui prototipo è: {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.} @@ -805,8 +806,8 @@ posizione corrente nel file con \code{lseek(fd, 0, SEEK\_CUR)}. porta alla fine del file se non ci sono \textit{hole} dopo \param{offset} (dal kernel 3.1).\\ \hline - \end{tabular} \caption{Possibili valori per l'argomento \param{whence} di - \func{lseek}.} + \end{tabular} + \caption{Possibili valori per l'argomento \param{whence} di \func{lseek}.} \label{tab:lseek_whence_values} \end{table} @@ -1055,7 +1056,7 @@ prototipo è: {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 @@ -1487,7 +1488,7 @@ prototipi sono: \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} @@ -2258,11 +2259,11 @@ per compiere operazioni specializzate; il suo prototipo è: 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} @@ -3595,7 +3596,7 @@ specificati in questo ordine: \textbf{Valore} & \textbf{Significato}\\ \hline \hline - \val{\#} & Chiede la conversione in forma alternativa. \\ + \val{\#} & Chiede la conversione in forma alternativa.\\ \val{0} & La conversione è riempita con zeri alla sinistra del valore.\\ \val{-} & La conversione viene allineata a sinistra sul bordo del campo.\\ \val{' '}& Mette uno spazio prima di un numero con segno di valore