Aggiunte i listati per poter usare le modifiche di Mirko, con la generazione
[gapil.git] / fileunix.tex
index 0863017c1c74a1a54c14b75be656517290420a5f..5decd4994f91e0aa80b9e216dee0864c46d77e8f 100644 (file)
@@ -50,10 +50,10 @@ Quando un file viene aperto la funzione \func{open} restituisce questo numero,
 tutte le ulteriori operazioni saranno compiute specificando questo stesso
 valore come argomento alle varie funzioni dell'interfaccia.
 
-Per capire come funziona il meccanismo occorre spiegare a grandi linee come è
-che il kernel gestisce l'interazione fra processi e file.  Il kernel mantiene
-sempre un elenco dei processi attivi nella cosiddetta \textit{process table}
-ed un elenco dei file aperti nella \textit{file table}.
+Per capire come funziona il meccanismo occorre spiegare a grandi linee come il
+kernel gestisce l'interazione fra processi e file.  Il kernel mantiene sempre
+un elenco dei processi attivi nella cosiddetta \textit{process table} 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
@@ -129,7 +129,7 @@ quindi alla lettura della tastiera). Il secondo file 
 inviati i dati in uscita (sempre nel caso della shell, è associato all'uscita
 del terminale, e quindi alla scrittura sullo schermo). Il terzo è lo
 \textit{standard error}, su cui viene inviato l'output relativo agli errori,
-ed è anch'esso associato all'uscita del termininale.  Lo standard POSIX.1
+ed è anch'esso associato all'uscita del terminale.  Lo standard POSIX.1
 provvede tre costanti simboliche, definite nell'header \file{unistd.h}, al
 posto di questi valori numerici:
 \begin{table}[htb]
@@ -253,7 +253,7 @@ usato 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 \param{pathname} si riferisce ad un device di
+    \const{O\_NOCTTY} & se \param{pathname} si riferisce ad un dispositivo 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
@@ -300,7 +300,7 @@ usato sempre il file descriptor con il valore pi
     \func{write} bloccherà fino al completamento della scrittura di tutti dati
     sul sull'hardware sottostante.\\
     \const{O\_FSYNC} & sinonimo di \const{O\_SYNC}. \\
-    \const{O\_NOATIME} & blocca l'aggiornamento dei tempi dei di accesso dei
+    \const{O\_NOATIME} & blocca l'aggiornamento dei tempi di accesso dei
     file (vedi \secref{sec:file_file_times}). In Linux questa opzione non è
     disponibile per il singolo file ma come opzione per il filesystem in fase
     di montaggio.\\
@@ -317,9 +317,10 @@ usato sempre il file descriptor con il valore pi
   file con un nome univoco e la funzione \func{link} per verificarne
   l'esistenza (vedi \secref{sec:ipc_file_lock}).}
 
-\footnotetext[3]{\textit{Denial of Service}, si chiamano così attacchi miranti
-  ad impedire un servizio causando una qualche forma di carico eccessivo per
-  il sistema, che resta bloccato nelle risposte all'attacco.}
+\footnotetext[3]{\textit{Denial of Service}\index{DoS}, si chiamano così
+  attacchi miranti ad impedire un servizio causando una qualche forma di
+  carico eccessivo per il sistema, che resta bloccato nelle risposte
+  all'attacco.}
 
 \footnotetext[4]{il problema è che NFS non supporta la scrittura in append, ed
   il kernel deve simularla, ma questo comporta la possibilità di una race
@@ -461,7 +462,7 @@ ad un valore qualsiasi con la funzione \funcd{lseek}, il cui prototipo 
   \funcdecl{off\_t lseek(int fd, off\_t offset, int whence)}
   Imposta la posizione attuale nel file. 
   
-  \bodydesc{La funzione ritorna valore della posizione corrente in caso di
+  \bodydesc{La funzione ritorna il valore della posizione corrente in caso di
     successo e -1 in caso di errore nel qual caso \var{errno} assumerà uno dei
     valori:
   \begin{errlist}
@@ -521,7 +522,7 @@ indefinito.
 \label{sec:file_read}
 
 
-Una volta che un file è stato aperto (con il permesso in lettura) su possono
+Una volta che un file è stato aperto (con il permesso in lettura) si possono
 leggere i dati che contiene utilizzando la funzione \funcd{read}, il cui
 prototipo è:
 \begin{prototype}{unistd.h}{ssize\_t read(int fd, void * buf, size\_t count)}
@@ -712,7 +713,7 @@ confronti dell'accesso allo stesso file da parte di processi diversi.
   \label{fig:file_mult_acc}
 \end{figure}
 
-Il primo caso è quello in cui due processi diversi che aprono lo stesso file
+Il primo caso è quello in cui due processi diversi aprono lo stesso file
 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
@@ -951,7 +952,7 @@ dell'output fra l'esecuzione di una \func{fork} e la successiva \func{exec};
 diventa così possibile associare un file (o una pipe) allo standard input o
 allo standard output (torneremo sull'argomento in \secref{sec:ipc_pipe_use},
 quando tratteremo le pipe). Per fare questo in genere occorre prima chiudere
-il file che si vuole sostituire, cossicché il suo file descriptor possa esser
+il file che si vuole sostituire, cosicché il suo file descriptor possa esser
 restituito alla chiamata di \func{dup}, come primo file descriptor
 disponibile.
 
@@ -983,7 +984,7 @@ funzione di controllo dei file \func{fnctl} (che esamineremo in
 la sintassi \code{fnctl(oldfd, F\_DUPFD, newfd)} e se si usa 0 come valore per
 \param{newfd} diventa equivalente a \func{dup}. 
 
-La sola differenza fra le due funzioni\footnote{a parte la sistassi ed i
+La sola differenza fra le due funzioni\footnote{a parte la sintassi ed i
   diversi codici di errore.} è che \func{dup2} chiude il file descriptor
 \param{newfd} se questo è già aperto, garantendo che la duplicazione sia
 effettuata esattamente su di esso, invece \func{fcntl} restituisce il primo
@@ -999,7 +1000,7 @@ tutta una serie di operazioni ausiliarie che 
 descriptor, che non riguardano la normale lettura e scrittura di dati, ma la
 gestione sia delle loro proprietà, che di tutta una serie di ulteriori
 funzionalità che il kernel può mettere a disposizione.\footnote{ad esempio si
-  gesticono con questa funzione l'I/O asincrono (vedi
+  gestiscono con questa funzione l'I/O asincrono (vedi
   \secref{sec:file_asyncronous_io}) e il file locking\index{file!locking}
   (vedi \secref{sec:file_locking}).}
 
@@ -1112,7 +1113,7 @@ le tematiche relative all'I/O asincrono sono trattate in maniera esaustiva in
 
 Si tenga presente infine che quando si usa la funzione per determinare le
 modalità di accesso con cui è stato aperto il file (attraverso l'uso del
-comando \const{F\_GETFL}) è necessario estrarre i bit corripondenti nel
+comando \const{F\_GETFL}) è necessario estrarre i bit corrispondenti nel
 \textit{file status flag} che si è ottenuto.  Infatti la definizione corrente
 di quest'ultimo non assegna bit separati alle tre diverse modalità
 \const{O\_RDONLY}, \const{O\_WRONLY} e \const{O\_RDWR}.\footnote{in Linux