Inserite nuove macro per la indicizzazione della definizione delle funzioni
[gapil.git] / fileunix.tex
index 5508c50c9c882f4ced4136c647ca53d63404a1f9..b4e7b5705a16c2a06b3cfb0001880d285f588150 100644 (file)
@@ -57,11 +57,11 @@ ed un elenco dei file aperti nella \textit{file table}.
 
 La \textit{process table} è una tabella che contiene una voce per ciascun
 processo attivo nel sistema. In Linux ciascuna voce è costituita da una
-struttura di tipo \var{task\_struct} nella quale sono raccolte tutte le
+struttura di tipo \struct{task\_struct} nella quale sono raccolte tutte le
 informazioni relative al processo; fra queste informazioni c'è anche il
-puntatore ad una ulteriore struttura di tipo \var{files\_struct}, in cui sono
-contenute le informazioni relative ai file che il processo ha aperto, ed in
-particolare:
+puntatore ad una ulteriore struttura di tipo \struct{files\_struct}, in cui
+sono contenute le informazioni relative ai file che il processo ha aperto, ed
+in particolare:
 \begin{itemize*}
 \item i flag relativi ai file descriptor.
 \item il numero di file aperti.
@@ -73,14 +73,14 @@ quest'ultima tabella.
 
 La \textit{file table} è una tabella che contiene una voce per ciascun file
 che è stato aperto nel sistema. In Linux è costituita da strutture di tipo
-\var{file}; in ciascuna di esse sono tenute varie informazioni relative al
+\struct{file}; in ciascuna di esse sono tenute varie informazioni relative al
 file, fra cui:
 \begin{itemize*}
 \item lo stato del file (nel campo \var{f\_flags}).
 \item il valore della posizione corrente (l'\textit{offset}) nel file (nel
   campo \var{f\_pos}).
 \item un puntatore all'inode\index{inode}\footnote{nel kernel 2.4.x si è in
-    realtà passati ad un puntatore ad una struttura \var{dentry} che punta a
+    realtà passati ad un puntatore ad una struttura \struct{dentry} che punta a
     sua volta all'inode\index{inode} passando per la nuova struttura del VFS.}
   del file.
 %\item un puntatore alla tabella delle funzioni \footnote{la struttura
@@ -162,9 +162,10 @@ stesso inode\index{inode}).
 Nelle vecchie versioni di Unix (ed anche in Linux fino al kernel 2.0.x) il
 numero di file aperti era anche soggetto ad un limite massimo dato dalle
 dimensioni del vettore di puntatori con cui era realizzata la tabella dei file
-descriptor dentro \var{file\_struct}; questo limite intrinseco nei kernel più
-recenti non sussiste più, dato che si è passati da un vettore ad una lista, ma
-restano i limiti imposti dall'amministratore (vedi \secref{sec:sys_limits}).
+descriptor dentro \struct{file\_struct}; questo limite intrinseco nei kernel
+più recenti non sussiste più, dato che si è passati da un vettore ad una
+lista, ma restano i limiti imposti dall'amministratore (vedi
+\secref{sec:sys_limits}).
 
 
 
@@ -194,30 +195,30 @@ prototipo 
   \headdecl{fcntl.h}
   \funcdecl{int open(const char *pathname, int flags)}
   \funcdecl{int open(const char *pathname, int flags, mode\_t mode)}
-  Apre il file indicato da \var{pathname} nella modalità indicata da
-  \var{flags}, e, nel caso il file sia creato, con gli eventuali permessi
-  specificati da \var{mode}.
+  Apre il file indicato da \param{pathname} nella modalità indicata da
+  \param{flags}, e, nel caso il file sia creato, con gli eventuali permessi
+  specificati da \param{mode}.
   
   \bodydesc{La funzione ritorna il file descriptor in caso di successo e -1 in
     caso di errore. In questo caso la variabile \var{errno} assumerà uno dei
     valori:
   \begin{errlist}
-  \item[\errcode{EEXIST}] \var{pathname} esiste e si è specificato
+  \item[\errcode{EEXIST}] \param{pathname} esiste e si è specificato
     \const{O\_CREAT} e \const{O\_EXCL}.  
-  \item[\errcode{EISDIR}] \var{pathname} indica una directory e si è tentato
+  \item[\errcode{EISDIR}] \param{pathname} indica una directory e si è tentato
     l'accesso in scrittura. 
   \item[\errcode{ENOTDIR}] si è specificato \const{O\_DIRECTORY} e
-    \var{pathname} non è una directory.
+    \param{pathname} non è una directory.
   \item[\errcode{ENXIO}] si sono impostati \const{O\_NOBLOCK} o
     \const{O\_WRONLY} ed il file è una fifo che non viene letta da nessun
-    processo o \var{pathname} è un file di dispositivo ma il dispositivo è
+    processo o \param{pathname} è un file di dispositivo ma il dispositivo è
     assente.
-  \item[\errcode{ENODEV}] \var{pathname} si riferisce a un file di dispositivo
-    che non esiste.  
+  \item[\errcode{ENODEV}] \param{pathname} si riferisce a un file di
+    dispositivo che non esiste.
   \item[\errcode{ETXTBSY}] si è cercato di accedere in scrittura all'immagine
     di un programma in esecuzione.
   \item[\errcode{ELOOP}] si sono incontrati troppi link simbolici nel risolvere
-    pathname o si è indicato \const{O\_NOFOLLOW} e \var{pathname} è un link
+    pathname o si è indicato \const{O\_NOFOLLOW} e \param{pathname} è un link
     simbolico.
   \end{errlist}
   ed inoltre \errval{EACCES}, \errval{ENAMETOOLONG}, \errval{ENOENT},
@@ -226,8 +227,8 @@ prototipo 
 \end{functions}
 
 La funzione apre il file, usando il primo file descriptor libero, e crea
-l'opportuna voce (cioè la struttura \var{file}) nella file table.  Viene usato
-sempre il file descriptor con il valore più basso. 
+l'opportuna voce (cioè la struttura \struct{file}) nella file table.  Viene
+usato sempre il file descriptor con il valore più basso.
 
 \begin{table}[!htb]
   \centering
@@ -243,8 +244,8 @@ sempre il file descriptor con il valore pi
     \hline % modalità di apertura del file
     \hline
     \const{O\_CREAT} & se il file non esiste verrà creato, con le regole di
-    titolarità del file viste in \secref{sec:file_ownership}. Il parametro
-    \var{mode} deve essere specificato. \\
+    titolarità del file viste in \secref{sec:file_ownership}. L'argomento
+    \param{mode} deve essere specificato. \\
     \const{O\_EXCL} & usato in congiunzione con \const{O\_CREAT} fa sì che
     l'esistenza del file diventi un errore\protect\footnotemark\ che fa fallire
     \func{open} con \errcode{EEXIST}. \\
@@ -252,7 +253,7 @@ sempre il file descriptor con il valore pi
     valore specifica anche una modalità di operazione (vedi sotto), e 
     comporta che \func{open} ritorni immediatamente (l'opzione ha senso 
     solo per le fifo, torneremo questo in \secref{sec:ipc_named_pipe}). \\
-    \const{O\_NOCTTY} & se \var{pathname} si riferisce ad un device di
+    \const{O\_NOCTTY} & se \param{pathname} si riferisce ad un device di
     terminale, questo non diventerà il terminale di controllo, anche se il
     processo non ne ha ancora uno (si veda \secref{sec:sess_ctrl_term}). \\
     \const{O\_SHLOCK} & opzione di BSD, acquisisce uno shared lock (vedi
@@ -263,11 +264,11 @@ sempre il file descriptor con il valore pi
     apertura consente la scrittura, allora la sua lunghezza verrà troncata a
     zero. Se il file è un terminale o una fifo il flag verrà ignorato, negli
     altri casi il comportamento non è specificato. \\
-    \const{O\_NOFOLLOW} & se \var{pathname} è un link simbolico la chiamata
+    \const{O\_NOFOLLOW} & se \param{pathname} è un link simbolico la chiamata
     fallisce. Questa è un'estensione BSD aggiunta in Linux dal kernel 2.1.126.
     Nelle versioni precedenti i link simbolici sono sempre seguiti, e questa
     opzione è ignorata. \\
-    \const{O\_DIRECTORY} & se \var{pathname} non è una directory la chiamata
+    \const{O\_DIRECTORY} & se \param{pathname} non è una directory la chiamata
     fallisce. Questo flag è specifico di Linux ed è stato introdotto con il
     kernel 2.1.126 per evitare dei
     \textit{DoS}\index{DoS}\protect\footnotemark\ quando  
@@ -352,7 +353,7 @@ processo.
 La funzione prevede diverse opzioni, che vengono specificate usando vari bit
 dell'argomento \param{flags}.  Alcuni di questi bit vanno anche a costituire
 il flag di stato del file (o \textit{file status flag}), che è mantenuto nel
-campo \var{f\_flags} della struttura \var{file} (al solito si veda lo schema
+campo \var{f\_flags} della struttura \struct{file} (al solito si veda lo schema
 di \figref{fig:file_proc_file}).  Essi sono divisi in tre categorie
 principali:
 \begin{itemize}
@@ -389,7 +390,7 @@ questo motivo per creare un nuovo file c'era una system call apposita,
 \func{creat}, il cui prototipo è:
 \begin{prototype}{fcntl.h}
   {int creat(const char *pathname, mode\_t mode)}
-  Crea un nuovo file vuoto, con i permessi specificati da \var{mode}. È del
+  Crea un nuovo file vuoto, con i permessi specificati da \param{mode}. È del
   tutto equivalente a \code{open(filedes, O\_CREAT|O\_WRONLY|O\_TRUNC, mode)}. 
 \end{prototype}
 \noindent adesso questa funzione resta solo per compatibilità con i vecchi 
@@ -402,12 +403,12 @@ programmi.
 La funzione \func{close} permette di chiudere un file, in questo modo il file
 descriptor ritorna disponibile; il suo prototipo è:
 \begin{prototype}{unistd.h}{int close(int fd)}
-  Chiude il descrittore \var{fd}. 
+  Chiude il descrittore \param{fd}. 
   
   \bodydesc{La funzione ritorna 0 in caso di successo e -1 in caso di errore,
     ed in questo caso \var{errno} assumerà uno dei valori:
   \begin{errlist}
-    \item[\errcode{EBADF}]  \var{fd} non è un descrittore valido.
+    \item[\errcode{EBADF}]  \param{fd} non è un descrittore valido.
     \item[\errcode{EINTR}] la funzione è stata interrotta da un segnale.
   \end{errlist}
   ed inoltre \errval{EIO}.}
@@ -415,10 +416,10 @@ descriptor ritorna disponibile; il suo prototipo 
 
 La chiusura di un file rilascia ogni blocco (il \textit{file
   locking}\index{file!locking} è trattato in \secref{sec:file_locking}) che il
-processo poteva avere acquisito su di esso; se \var{fd} è l'ultimo riferimento
-(di eventuali copie) ad un file aperto, tutte le risorse nella file table
-vengono rilasciate. Infine se il file descriptor era l'ultimo riferimento ad
-un file su disco quest'ultimo viene cancellato.
+processo poteva avere acquisito su di esso; se \param{fd} è l'ultimo
+riferimento (di eventuali copie) ad un file aperto, tutte le risorse nella
+file table vengono rilasciate. Infine se il file descriptor era l'ultimo
+riferimento ad un file su disco quest'ultimo viene cancellato.
 
 Si ricordi che quando un processo termina anche tutti i suoi file descriptor
 vengono chiusi, molti programmi sfruttano questa caratteristica e non usano
@@ -446,7 +447,7 @@ di ripetere tre volte il comando prima di eseguire lo shutdown).
 
 Come già accennato in \secref{sec:file_fd} a ciascun file aperto è associata
 una \textsl{posizione corrente nel file} (il cosiddetto \textit{file offset},
-mantenuto nel campo \var{f\_pos} di \var{file}) espressa da un numero intero
+mantenuto nel campo \var{f\_pos} di \struct{file}) espressa da un numero intero
 positivo come numero di byte dall'inizio del file. Tutte le operazioni di
 lettura e scrittura avvengono a partire da questa posizione che viene
 automaticamente spostata in avanti del numero di byte letti o scritti.
@@ -492,7 +493,7 @@ Come accennato in \secref{sec:file_file_size} con \func{lseek} 
 impostare la posizione corrente anche oltre la fine del file, e alla
 successiva scrittura il file sarà esteso. La chiamata non causa nessuna
 attività di input/output, si limita a modificare la posizione corrente nel
-kernel (cioè \var{f\_pos} in \var{file}, vedi \figref{fig:file_proc_file}).
+kernel (cioè \var{f\_pos} in \param{file}, vedi \figref{fig:file_proc_file}).
 
 Dato che la funzione ritorna la nuova posizione, usando il valore zero per
 \param{offset} si può riottenere la posizione corrente nel file chiamando la
@@ -525,7 +526,8 @@ leggere i dati che contiene utilizzando la funzione \func{read}, il cui
 prototipo è:
 \begin{prototype}{unistd.h}{ssize\_t read(int fd, void * buf, size\_t count)}
   
-  Cerca di leggere \var{count} byte dal file \var{fd} al buffer \var{buf}.
+  Cerca di leggere \param{count} byte dal file \param{fd} al buffer
+  \param{buf}.
   
   \bodydesc{La funzione ritorna il numero di byte letti in caso di successo e
     -1 in caso di errore, nel qual caso \var{errno} assumerà uno dei valori:
@@ -537,12 +539,12 @@ prototipo 
   \end{errlist}
   ed inoltre \errval{EBADF}, \errval{EIO}, \errval{EISDIR}, \errval{EBADF},
   \errval{EINVAL} e \errval{EFAULT} ed eventuali altri errori dipendenti dalla
-  natura dell'oggetto connesso a \var{fd}.}
+  natura dell'oggetto connesso a \param{fd}.}
 \end{prototype}
 
-La funzione tenta di leggere \var{count} byte a partire dalla posizione
+La funzione tenta di leggere \param{count} byte a partire dalla posizione
 corrente nel file. Dopo la lettura la posizione sul file è spostata
-automaticamente in avanti del numero di byte letti. Se \var{count} è zero la
+automaticamente in avanti del numero di byte letti. Se \param{count} è zero la
 funzione restituisce zero senza nessun altro risultato.
 
 Si deve sempre tener presente che non è detto che la funzione \func{read}
@@ -601,8 +603,8 @@ definizione di un'altra funzione di lettura, \func{pread}, il cui prototipo 
 \begin{prototype}{unistd.h}
 {ssize\_t pread(int fd, void * buf, size\_t count, off\_t offset)}
 
-Cerca di leggere \var{count} byte dal file \var{fd}, a partire dalla posizione
-\var{offset}, nel buffer \var{buf}.
+Cerca di leggere \param{count} byte dal file \param{fd}, a partire dalla
+posizione \param{offset}, nel buffer \param{buf}.
   
 \bodydesc{La funzione ritorna il numero di byte letti in caso di successo e -1
   in caso di errore, nel qual caso \var{errno} assumerà i valori già visti per
@@ -619,7 +621,7 @@ modificare la posizione corrente. 
 posizione corrente sul file, ma permette di eseguire l'operazione
 atomicamente. Questo può essere importante quando la posizione sul file viene
 condivisa da processi diversi (vedi \secref{sec:file_sharing}).  Il valore di
-\var{offset} fa sempre riferimento all'inizio del file.
+\param{offset} fa sempre riferimento all'inizio del file.
 
 
 \subsection{La funzione \func{write}}
@@ -629,17 +631,17 @@ Una volta che un file 
 scrivere su di esso utilizzando la funzione \func{write}, il cui prototipo è:
 \begin{prototype}{unistd.h}{ssize\_t write(int fd, void * buf, size\_t count)}
   
-  Scrive \var{count} byte dal buffer \var{buf} sul file \var{fd}.
+  Scrive \param{count} byte dal buffer \param{buf} sul file \param{fd}.
   
   \bodydesc{La funzione ritorna il numero di byte scritti in caso di successo
     e -1 in caso di errore, nel qual caso \var{errno} assumerà uno dei valori:
   \begin{errlist}
-  \item[\errcode{EINVAL}] \var{fd} è connesso ad un oggetto che non consente la
-    scrittura.
+  \item[\errcode{EINVAL}] \param{fd} è connesso ad un oggetto che non consente
+    la scrittura.
   \item[\errcode{EFBIG}] si è cercato di scrivere oltre la dimensione massima
     consentita dal filesystem o il limite per le dimensioni dei file del
     processo o su una posizione oltre il massimo consentito.
-  \item[\errcode{EPIPE}] \var{fd} è connesso ad una pipe il cui altro capo è
+  \item[\errcode{EPIPE}] \param{fd} è connesso ad una pipe il cui altro capo è
     chiuso in lettura; in questo caso viene anche generato il segnale
     \const{SIGPIPE}, se questo viene gestito (o bloccato o ignorato) la
     funzione ritorna questo errore.
@@ -650,11 +652,11 @@ scrivere su di esso utilizzando la funzione \func{write}, il cui prototipo 
   \end{errlist}
   ed inoltre \errval{EBADF}, \errval{EIO}, \errval{EISDIR}, \errval{EBADF},
   \errval{ENOSPC}, \errval{EINVAL} e \errval{EFAULT} ed eventuali altri errori
-  dipendenti dalla natura dell'oggetto connesso a \var{fd}.}
+  dipendenti dalla natura dell'oggetto connesso a \param{fd}.}
 \end{prototype}
 
-Come nel caso di \func{read} la funzione tenta di scrivere \var{count} byte a
-partire dalla posizione corrente nel file e sposta automaticamente la
+Come nel caso di \func{read} la funzione tenta di scrivere \param{count} byte
+partire dalla posizione corrente nel file e sposta automaticamente la
 posizione in avanti del numero di byte scritti. Se il file è aperto in
 modalità \const{O\_APPEND} i dati vengono sempre scritti alla fine del file.
 Lo standard POSIX richiede che i dati scritti siano immediatamente disponibili
@@ -662,10 +664,10 @@ ad una \func{read} chiamata dopo che la \func{write} che li ha scritti 
 ritornata; ma dati i meccanismi di caching non è detto che tutti i filesystem
 supportino questa capacità.
 
-Se \var{count} è zero la funzione restituisce zero senza fare nient'altro. Per
-i file ordinari il numero di byte scritti è sempre uguale a quello indicato
-da \var{count}, a meno di un errore. Negli altri casi si ha lo stesso
-comportamento di \func{read}.
+Se \param{count} è zero la funzione restituisce zero senza fare nient'altro.
+Per i file ordinari il numero di byte scritti è sempre uguale a quello
+indicato da \param{count}, a meno di un errore. Negli altri casi si ha lo
+stesso comportamento di \func{read}.
 
 Anche per \func{write} lo standard Unix98 definisce un'analoga \func{pwrite}
 per scrivere alla posizione indicata senza modificare la posizione corrente
@@ -673,8 +675,8 @@ nel file, il suo prototipo 
 \begin{prototype}{unistd.h}
 {ssize\_t pwrite(int fd, void * buf, size\_t count, off\_t offset)}
   
-Cerca di scrivere sul file \var{fd}, a partire dalla posizione \var{offset},
-\var{count} byte dal buffer \var{buf}.
+Cerca di scrivere sul file \param{fd}, a partire dalla posizione
+\param{offset}, \param{count} byte dal buffer \param{buf}.
   
 \bodydesc{La funzione ritorna il numero di byte letti in caso di successo e -1
   in caso di errore, nel qual caso \var{errno} assumerà i valori già visti per
@@ -714,9 +716,9 @@ Il primo caso 
 su disco; sulla base di quanto visto in \secref{sec:file_fd} avremo una
 situazione come quella illustrata in \figref{fig:file_mult_acc}: ciascun
 processo avrà una sua voce nella \textit{file table} referenziata da un
-diverso file descriptor nella sua \var{file\_struct}. Entrambe le voci nella
-\textit{file table} faranno però riferimento allo stesso inode\index{inode} su
-disco.
+diverso file descriptor nella sua \struct{file\_struct}. Entrambe le voci
+nella \textit{file table} faranno però riferimento allo stesso
+inode\index{inode} su disco.
 
 Questo significa che ciascun processo avrà la sua posizione corrente sul file,
 la sua modalità di accesso e versioni proprie di tutte le proprietà che
@@ -734,9 +736,9 @@ stesso file, in particolare occorre tenere presente che:
   dimensione corrente del file letta dall'inode\index{inode}. Dopo la
   scrittura il file viene automaticamente esteso.
 \item l'effetto di \func{lseek} è solo quello di cambiare il campo
-  \var{f\_pos} nella struttura \var{file} della \textit{file table}, non c'è
-  nessuna operazione sul file su disco. Quando la si usa per porsi alla fine
-  del file la posizione viene impostata leggendo la dimensione corrente
+  \var{f\_pos} nella struttura \struct{file} della \textit{file table}, non
+  c'è nessuna operazione sul file su disco. Quando la si usa per porsi alla
+  fine del file la posizione viene impostata leggendo la dimensione corrente
   dall'inode\index{inode}.
 \end{itemize}
 
@@ -753,7 +755,7 @@ caso dei file aperti che vengono ereditati dal processo figlio all'esecuzione
 di una \func{fork} (si ricordi quanto detto in \secref{sec:proc_fork}). La
 situazione è illustrata in \figref{fig:file_acc_child}; dato che il processo
 figlio riceve una copia dello spazio di indirizzi del padre, riceverà anche
-una copia di \var{file\_struct} e relativa tabella dei file aperti.
+una copia di \struct{file\_struct} e relativa tabella dei file aperti.
 
 In questo modo padre e figlio avranno gli stessi file descriptor che faranno
 riferimento alla stessa voce nella \textit{file table}, condividendo così la
@@ -765,12 +767,12 @@ corrente nel file varier
 Si noti inoltre che anche i flag di stato del file (quelli impostati
 dall'argomento \param{flag} di \func{open}) essendo tenuti nella voce della
 \textit{file table}\footnote{per la precisione nel campo \var{f\_flags} di
-  \var{file}.}, vengono in questo caso condivisi. Ai file però sono associati
-anche altri flag, dei quali l'unico usato al momento è \const{FD\_CLOEXEC},
-detti \textit{file descriptor flags}. Questi ultimi sono tenuti invece in
-\var{file\_struct}, e perciò sono specifici di ciascun processo e non vengono
-modificati dalle azioni degli altri anche in caso di condivisione della stessa
-voce della \textit{file table}.
+  \struct{file}.}, vengono in questo caso condivisi. Ai file però sono
+associati anche altri flag, dei quali l'unico usato al momento è
+\const{FD\_CLOEXEC}, detti \textit{file descriptor flags}. Questi ultimi sono
+tenuti invece in \struct{file\_struct}, e perciò sono specifici di ciascun
+processo e non vengono modificati dalle azioni degli altri anche in caso di
+condivisione della stessa voce della \textit{file table}.
 
 
 
@@ -885,7 +887,7 @@ Entrambe le funzioni forzano la sincronizzazione col disco di tutti i dati del
 file specificato, ed attendono fino alla conclusione delle operazioni;
 \func{fsync} forza anche la sincronizzazione dei metadati del file (che
 riguardano sia le modifiche alle tabelle di allocazione dei settori, che gli
-altri dati contenuti nell'inode\index{inode} che si leggono con \var{fstat}
+altri dati contenuti nell'inode\index{inode} che si leggono con \func{fstat},
 come i tempi del file).
 
 Si tenga presente che questo non comporta la sincronizzazione della
@@ -921,10 +923,10 @@ La funzione ritorna, come \func{open}, il primo file descriptor libero. Il
 file descriptor è una copia esatta del precedente ed entrambi possono essere
 interscambiati nell'uso. Per capire meglio il funzionamento della funzione si
 può fare riferimento a \figref{fig:file_dup}: l'effetto della funzione è
-semplicemente quello di copiare il valore nella struttura \var{file\_struct},
-cosicché anche il nuovo file descriptor fa riferimento alla stessa voce
-nella \textit{file table}; per questo si dice che il nuovo file descriptor è
-\textsl{duplicato}, da cui il nome della funzione.
+semplicemente quello di copiare il valore nella struttura
+\struct{file\_struct}, cosicché anche il nuovo file descriptor fa riferimento
+alla stessa voce nella \textit{file table}; per questo si dice che il nuovo
+file descriptor è \textsl{duplicato}, da cui il nome della funzione.
 
 \begin{figure}[htb]
   \centering \includegraphics[width=15cm]{img/filedup}
@@ -1028,7 +1030,7 @@ un esempio per la duplicazione dei file descriptor, una lista dei possibili
 valori è riportata di seguito:
 \begin{basedescript}{\desclabelwidth{2.0cm}}
 \item[\const{F\_DUPFD}] trova il primo file descriptor disponibile di valore
-  maggiore o uguale ad \param{arg} e ne fa una copia di \var{fd}. In caso di
+  maggiore o uguale ad \param{arg} e ne fa una copia di \param{fd}. In caso di
   successo ritorna il nuovo file descriptor. Gli errori possibili sono
   \errcode{EINVAL} se \param{arg} è negativo o maggiore del massimo consentito
   o \errcode{EMFILE} se il processo ha già raggiunto il massimo numero di
@@ -1039,7 +1041,7 @@ valori 
   \const{FD\_CLOEXEC}, che serve a richiedere che il file venga chiuso nella
   esecuzione di una \func{exec} (vedi \secref{sec:proc_exec}).
 \item[\const{F\_GETFD}] ritorna il valore del \textit{file descriptor flag} di
-  \var{fd}, se \const{FD\_CLOEXEC} è impostato i file descriptor aperti
+  \param{fd}, se \const{FD\_CLOEXEC} è impostato i file descriptor aperti
   vengono chiusi attraverso una \func{exec} altrimenti (il comportamento
   predefinito) restano aperti.
 \item[\const{F\_GETFL}] ritorna il valore del \textit{file status flag},
@@ -1071,13 +1073,13 @@ valori 
     nel controllo di sessione; a ciascuno di essi è associato un
     identificatore (un numero positivo analogo al \acr{pid}).}  che è preposto
   alla ricezione dei segnali \const{SIGIO} e \const{SIGURG} per gli eventi
-  associati al file descriptor \var{fd}. Nel caso di un process group viene
+  associati al file descriptor \param{fd}. Nel caso di un process group viene
   restituito un valore negativo il cui valore assoluto corrisponde
   all'identificatore del process group.
 \item[\const{F\_SETOWN}] imposta, con il valore dell'argomento \param{arg},
   l'identificatore del processo o del \textit{process group} che riceverà i
   segnali \const{SIGIO} e \const{SIGURG} per gli eventi associati al file
-  descriptor \var{fd}.  Come per \const{F\_GETOWN}, per impostare un process
+  descriptor \param{fd}.  Come per \const{F\_GETOWN}, per impostare un process
   group si deve usare per \param{arg} un valore negativo, il cui valore
   assoluto corrisponde all'identificatore del process group.
 \item[\const{F\_GETSIG}] restituisce il valore del segnale inviato quando ci
@@ -1095,7 +1097,7 @@ valori 
   \const{SA\_SIGINFO}, (vedi \secref{sec:sig_sigaction}), di rendere
   disponibili al manipolatore informazioni ulteriori informazioni riguardo il
   file che ha generato il segnale attraverso i valori restituiti in
-  \type{siginfo\_t} (come vedremo in
+  \struct{siginfo\_t} (come vedremo in
   \secref{sec:file_asyncronous_io}).\footnote{i due comandi \const{F\_SETSIG}
     e \const{F\_GETSIG} sono una estensione specifica di Linux.}
 \end{basedescript}