Sistemata la parte della allocazione della memoria, le variadic
[gapil.git] / fileunix.tex
index aa4b86a8af709993aa5e4294dfbcd1935221f490..674d023449bfebfe54bb405c3d815097c1142f45 100644 (file)
@@ -101,7 +101,7 @@ capire i dettagli del funzionamento dell'interfaccia dei \textit{file
 
 \index{file!descriptor|)}
 
-\begin{figure}[htb]
+\begin{figure}[!htb]
   \centering
   \includegraphics[width=13cm]{img/procfile}
   \caption{Schema della architettura dell'accesso ai file attraverso
@@ -322,7 +322,7 @@ ritorno il file descriptor con il valore più basso disponibile.
                          \const{O\_NONBLOCK}.\\
     \const{O\_ASYNC}   & Apre il file per l'I/O in modalità asincrona (vedi
                          sez.~\ref{sec:file_asyncronous_io}). Quando è
-                         impostato viene generato il segnale \const{SIGIO}
+                         impostato viene generato il segnale \signal{SIGIO}
                          tutte le volte che sono disponibili dati in input
                          sul file.\\  
     \const{O\_SYNC}    & Apre il file per l'input/output sincrono: ogni
@@ -552,7 +552,7 @@ seguenti valori\footnote{per compatibilità con alcune vecchie notazioni
   per ottenere la nuova posizione corrente.
 \end{basedescript}
 
-% TODO, trattare, quando inclusi, SEEK_HOLE e SEEK_DATA, vedi
+% TODO, trattare, SEEK_HOLE e SEEK_DATA, inclusi nel kernel 3.1, vedi
 % http://lwn.net/Articles/439623/ 
 
 
@@ -769,7 +769,7 @@ scrivere su di esso utilizzando la funzione \funcd{write}, il cui prototipo è:
     processo o su una posizione oltre il massimo consentito.
   \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
+    \signal{SIGPIPE}, se questo viene gestito (o bloccato o ignorato) la
     funzione ritorna questo errore.
   \item[\errcode{EINTR}] si è stati interrotti da un segnale prima di aver
     potuto scrivere qualsiasi dato.
@@ -830,7 +830,7 @@ fig.~\ref{fig:file_proc_file} le principali strutture usate dal kernel;
 esamineremo ora in dettaglio le conseguenze che questa architettura ha nei
 confronti dell'accesso allo stesso file da parte di processi diversi.
 
-\begin{figure}[htb]
+\begin{figure}[!htb]
   \centering
   \includegraphics[width=15cm]{img/filemultacc}
   \caption{Schema dell'accesso allo stesso file da parte di due processi 
@@ -869,7 +869,7 @@ che:
   dimensione corrente \index{inode} dall'inode.
 \end{itemize}
 
-\begin{figure}[htb]
+\begin{figure}[!htb]
   \centering
   \includegraphics[width=15cm]{img/fileshar}
   \caption{Schema dell'accesso ai file da parte di un processo figlio}
@@ -1060,7 +1060,7 @@ semplicemente quello di copiare il valore nella struttura
 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]
+\begin{figure}[!htb]
   \centering \includegraphics[width=14cm]{img/filedup}
   \caption{Schema dell'accesso ai file duplicati}
   \label{fig:file_dup}
@@ -1143,15 +1143,15 @@ molti casi in cui sarebbe invece utile che ogni singolo \itindex{thread}
 Per risolvere questi problemi, riprendendo una interfaccia già presente in
 Solaris, a fianco delle normali funzioni che operano sui file (come
 \func{open}, \func{mkdir}, ecc.) sono state introdotte delle ulteriori
-funzioni, contraddistinte dal suffisso \texttt{at}, che permettono l'apertura
-di un file (o le rispettive altre operazioni) usando un pathname relativo ad
-una directory specificata.\footnote{l'introduzione è avvenuta su proposta
-  dello sviluppatore principale delle \acr{glibc} Urlich Drepper; le
-  corrispondenti system call sono state inserite nel kernel ufficiale a
-  partire dalla versione 2.6.16, in precedenza era disponibile una emulazione
-  che, sia pure con prestazioni inferiori, funzionava facendo ricorso all'uso
-  del filesystem \textit{proc} con l'apertura del file attraverso il
-  riferimento a pathname del tipo di
+funzioni, dette anche funzioni ``\textit{at}'' in quanto contraddistinte dal
+suffisso \texttt{at}, che permettono l'apertura di un file (o le rispettive
+altre operazioni) usando un pathname relativo ad una directory
+specificata.\footnote{l'introduzione è avvenuta su proposta dello sviluppatore
+  principale delle \acr{glibc} Urlich Drepper; le corrispondenti system call
+  sono state inserite nel kernel ufficiale a partire dalla versione 2.6.16, in
+  precedenza era disponibile una emulazione che, sia pure con prestazioni
+  inferiori, funzionava facendo ricorso all'uso del filesystem \textit{proc}
+  con l'apertura del file attraverso il riferimento a pathname del tipo di
   \texttt{/proc/self/fd/dirfd/relative\_path}.} Benché queste funzioni non
 siano presenti negli standard tradizionali esse sono state adottate da vari
 Unix\footnote{oltre a Linux e Solaris sono presenti in vari BSD.} fino ad
@@ -1459,13 +1459,13 @@ per \var{cmd} è riportata di seguito:
     (vedi sez.~\ref{sec:sess_proc_group}) raggruppamenti di processi usati 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}\footnote{o qualunque altro segnale alternativo
+  dei segnali \signal{SIGIO}\footnote{o qualunque altro segnale alternativo
     impostato con \const{F\_FSETSIG}.} per gli eventi associati al file
   descriptor \param{fd}\footnote{il segnale viene usato sia per il
     \textit{Signal Drive I/O}, che tratteremo in
     sez.~\ref{sec:file_asyncronous_operation}, e dai vari meccanismi di
     notifica asincrona, che tratteremo in
-    sez.~\ref{sec:file_asyncronous_lease}.} e \const{SIGURG} per la notifica
+    sez.~\ref{sec:file_asyncronous_lease}.} e \signal{SIGURG} per la notifica
   dei dati urgenti di un socket.\footnote{vedi
     sez.~\ref{sec:TCP_urgent_data}.} Nel caso di un \textit{process group}
   viene restituito un valore negativo il cui valore assoluto corrisponde
@@ -1473,7 +1473,7 @@ per \var{cmd} è riportata di seguito:
   caso di errore viene restituito $-1$.
 \item[\const{F\_SETOWN}] imposta, con il valore dell'argomento \param{arg},
   l'identificatore del processo o del \itindex{process~group} \textit{process
-    group} che riceverà i segnali \const{SIGIO}  e \const{SIGURG} per gli
+    group} che riceverà i segnali \signal{SIGIO}  e \signal{SIGURG} per gli
   eventi associati al file descriptor \param{fd}, ritorna un valore nullo in
   caso di successo o $-1$ in caso di errore.  Come per \const{F\_GETOWN}, per
   impostare un \itindex{process~group} \textit{process group} si deve usare
@@ -1482,14 +1482,14 @@ per \var{cmd} è riportata di seguito:
 \item[\const{F\_GETSIG}] restituisce il valore del segnale inviato quando ci
   sono dati disponibili in ingresso su un file descriptor aperto ed impostato
   per l'I/O asincrono (si veda sez.~\ref{sec:file_asyncronous_io}). Il valore 0
-  indica il valore predefinito (che è \const{SIGIO}), un valore diverso da
+  indica il valore predefinito (che è \signal{SIGIO}), un valore diverso da
   zero indica il segnale richiesto, (che può essere anche lo stesso
-  \const{SIGIO}). In caso di errore ritorna $-1$.
+  \signal{SIGIO}). In caso di errore ritorna $-1$.
 \item[\const{F\_SETSIG}] imposta il segnale da inviare quando diventa
   possibile effettuare I/O sul file descriptor in caso di I/O asincrono,
   ritorna un valore nullo in caso di successo o $-1$ in caso di errore. Il
-  valore zero indica di usare il segnale predefinito, \const{SIGIO}. Un altro
-  valore diverso da zero (compreso lo stesso \const{SIGIO}) specifica il
+  valore zero indica di usare il segnale predefinito, \signal{SIGIO}. Un altro
+  valore diverso da zero (compreso lo stesso \signal{SIGIO}) specifica il
   segnale voluto; l'uso di un valore diverso da zero permette inoltre, se si è
   installato il gestore del segnale come \var{sa\_sigaction} usando
   \const{SA\_SIGINFO}, (vedi sez.~\ref{sec:sig_sigaction}), di rendere
@@ -1514,7 +1514,7 @@ per \var{cmd} è riportata di seguito:
   argomento può essere omesso. Questa funzionalità avanzata è trattata in
   dettaglio in sez.~\ref{sec:file_asyncronous_lease}.
 \item[\const{F\_NOTIFY}] attiva un meccanismo di notifica per cui viene
-  riportata al processo chiamante, tramite il segnale \const{SIGIO} (o altro
+  riportata al processo chiamante, tramite il segnale \signal{SIGIO} (o altro
   segnale specificato con \const{F\_SETSIG}) ogni modifica eseguita o
   direttamente sulla directory cui \var{fd} fa riferimento, o su uno dei file
   in essa contenuti; ritorna un valore nullo in caso di successo o $-1$ in caso
@@ -1663,11 +1663,11 @@ operazioni che sono predefinite per qualunque file,\footnote{in particolare
   tipo \texttt{const int *}) che contiene un valore logico (un valore nullo
   disabilita, un valore non nullo abilita).
 \item[\const{FIOSETOWN}] imposta il processo che riceverà i segnali
-  \const{SIGURG} e \const{SIGIO} generati sul file; il terzo argomento deve
+  \signal{SIGURG} e \signal{SIGIO} generati sul file; il terzo argomento deve
   essere un puntatore ad un intero (cioè di tipo \texttt{const int *}) il cui
   valore specifica il PID del processo.
 \item[\const{FIOGETOWN}] legge il processo che riceverà i segnali
-  \const{SIGURG} e \const{SIGIO} generati sul file; il terzo argomento deve
+  \signal{SIGURG} e \signal{SIGIO} generati sul file; il terzo argomento deve
   essere un puntatore ad un intero (cioè di tipo \texttt{int *}) su cui sarà
   scritto il PID del processo.
 \item[\const{FIONREAD}] legge il numero di byte disponibili in lettura sul
@@ -1685,7 +1685,6 @@ operazioni che sono predefinite per qualunque file,\footnote{in particolare
 
 % TODO aggiungere FIBMAP e FIEMAP, vedi http://lwn.net/Articles/260832
 
-
 Si noti però come la gran parte di queste operazioni specifiche dei file (per
 essere precisi le prime sei dell'elenco) siano effettuabili in maniera
 generica anche tramite l'uso di \func{fcntl}. Le due funzioni infatti sono