revisioni varie
[gapil.git] / filedir.tex
index b5eb2c2ee430cd82819fece21c5a327c5757c24a..f5261b3a435ae2a95dc6757a7eab78d37d2e360b 100644 (file)
@@ -781,19 +781,18 @@ corrente.
 In tal caso si avranno differenti risultati a seconda del modi in cui si
 calcola la lunghezza del file, ad esempio il comando \cmd{du}, (che riporta il
 numero di blocchi occupati) potrà dare una dimensione inferiore, mentre se si
 In tal caso si avranno differenti risultati a seconda del modi in cui si
 calcola la lunghezza del file, ad esempio il comando \cmd{du}, (che riporta il
 numero di blocchi occupati) potrà dare una dimensione inferiore, mentre se si
-legge dal file (ad esempio usando \cmd{wc -c}), dato che in tal caso per le
-parti non scritte vengono restituiti degli zeri, si avrà lo stesso risultato
-di \cmd{ls}.
-
-Se è sempre possibile allargare un file scrivendoci sopra od usando la
-funzione \func{seek} (vedi \secref{sec:file_seek}) per spostarsi oltre la sua
-fine. Esistono però anche casi in cui si può avere bisogno di effettuare un
-troncamento scartando i dati al di là della dimensione scelta come nuova fine
-del file.
-
-Un file può essere troncato a zero aprendolo con il flag \macro{O\_TRUNC}, ma
-questo è un caso particolare; per qualunque altra dimensione si possono usare
-le due funzioni:
+legge dal file (ad esempio usando il comando \cmd{wc -c}), dato che in tal
+caso per le parti non scritte vengono restituiti degli zeri, si avrà lo stesso
+risultato di \cmd{ls}.
+
+Se è sempre possibile allargare un file, scrivendoci sopra od usando la
+funzione \func{seek} per spostarsi oltre la sua fine, esistono anche casi in
+cui si può avere bisogno di effettuare un troncamento, scartando i dati
+presenti al di là della dimensione scelta come nuova fine del file.
+
+Un file può sempre essere troncato a zero aprendolo con il flag
+\macro{O\_TRUNC}, ma questo è un caso particolare; per qualunque altra
+dimensione si possono usare le due funzioni:
 \begin{functions}
   \headdecl{unistd.h} \funcdecl{int truncate(const char *file\_name, off\_t
     length)} Fa si che la dimensione del file \var{file\_name} sia troncata ad
 \begin{functions}
   \headdecl{unistd.h} \funcdecl{int truncate(const char *file\_name, off\_t
     length)} Fa si che la dimensione del file \var{file\_name} sia troncata ad
@@ -803,9 +802,9 @@ le due funzioni:
   eccetto che si usa con un file aperto, specificato tramite il suo file
   descriptor \var{fd}.
   
   eccetto che si usa con un file aperto, specificato tramite il suo file
   descriptor \var{fd}.
   
-  Le funzioni restituiscono zero in caso di successo e -1 per un errore, in
-  caso di errore \var{errno} viene settato opportunamente; per
-  \func{ftruncate} si hanno i valori:
+  Le funzioni restituiscono zero in caso di successo e -1 per un errore, nel
+  qual caso \var{errno} viene settato opportunamente; per \func{ftruncate} si
+  hanno i valori:
   \begin{errlist}
   \item \macro{EBADF} \var{fd}  non è un file descriptor.
   \item \macro{EINVAL} \var{fd} è un riferimento ad un socket, non a un file
   \begin{errlist}
   \item \macro{EBADF} \var{fd}  non è un file descriptor.
   \item \macro{EINVAL} \var{fd} è un riferimento ad un socket, non a un file
@@ -825,17 +824,17 @@ Se il file 
 perduti; il comportamento in caso di lunghezza inferiore non è specificato e
 dipende dall'implementazione: il file può essere lasciato invariato o esteso
 fino alla lunghezza scelta; in quest'ultimo caso lo spazio viene riempito con
 perduti; il comportamento in caso di lunghezza inferiore non è specificato e
 dipende dall'implementazione: il file può essere lasciato invariato o esteso
 fino alla lunghezza scelta; in quest'ultimo caso lo spazio viene riempito con
-zeri (e in genere si ha la creazione di un hole nel file).
+zeri (e in genere si ha la creazione di un \textit{hole} nel file).
 
 
 \subsection{I tempi dei file}
 \label{sec:file_file_times}
 
 Il sistema mantiene per ciascun file tre tempi. Questi sono registrati
 
 
 \subsection{I tempi dei file}
 \label{sec:file_file_times}
 
 Il sistema mantiene per ciascun file tre tempi. Questi sono registrati
-nell'inode insieme agli altri attributi del file e possono essere letti tramite
-la funzione \func{stat}, che li restituisce attraverso tre campi della
-struttura in \figref{fig:file_stat_struct}. Il significato di detti tempi e
-dei relativi campi è riportato nello schema in \ntab:
+nell'inode insieme agli altri attributi del file e possono essere letti
+tramite la funzione \func{stat}, che li restituisce attraverso tre campi della
+struttura \var{stat} di \figref{fig:file_stat_struct}. Il significato di detti
+tempi e dei relativi campi è riportato nello schema in \ntab:
 
 \begin{table}[htb]
   \centering
 
 \begin{table}[htb]
   \centering
@@ -858,7 +857,7 @@ dei relativi campi 
 
 Il primo punto da tenere presente è la differenza fra il cosiddetto tempo di
 modifica (il \textit{modification time} \var{st\_mtime}) e il tempo di
 
 Il primo punto da tenere presente è la differenza fra il cosiddetto tempo di
 modifica (il \textit{modification time} \var{st\_mtime}) e il tempo di
-cambiamento di stato (il \textit{chage time} \var{st\_ctime}). Il primo
+cambiamento di stato (il \textit{change time} \var{st\_ctime}). Il primo
 infatti fa riferimento ad una modifica del contenuto di un file, mentre il
 secondo ad una modifica dell'inode; siccome esistono molte operazioni (come la
 funzione \func{link} e molte altre che vedremo in seguito) che modificano solo
 infatti fa riferimento ad una modifica del contenuto di un file, mentre il
 secondo ad una modifica dell'inode; siccome esistono molte operazioni (come la
 funzione \func{link} e molte altre che vedremo in seguito) che modificano solo
@@ -867,9 +866,9 @@ l'utilizzo di un altro tempo.
 
 Il sistema non tiene conto dell'ultimo accesso all'inode, pertanto funzioni
 come \func{access} o \func{stat} non hanno alcuna influenza sui tre tempi. Il
 
 Il sistema non tiene conto dell'ultimo accesso all'inode, pertanto funzioni
 come \func{access} o \func{stat} non hanno alcuna influenza sui tre tempi. Il
-tempo di ultimo accesso viene di solito usato per cancellare i file che non
-servono più dopo un certo lasso di tempo (ad esempio \cmd{leafnode} cancella i
-vecchi articoli sulla base di questo tempo).  
+tempo di ultimo accesso (ai dati) viene di solito usato per cancellare i file
+che non servono più dopo un certo lasso di tempo (ad esempio \cmd{leafnode}
+cancella i vecchi articoli sulla base di questo tempo).
 
 Il tempo di ultima modifica invece viene usato da \cmd{make} per decidere
 quali file necessitano di essere ricompilati o (talvolta insieme anche al
 
 Il tempo di ultima modifica invece viene usato da \cmd{make} per decidere
 quali file necessitano di essere ricompilati o (talvolta insieme anche al
@@ -882,14 +881,15 @@ L'effetto delle varie funzioni di manipolazione dei file sui tempi 
 illustrato in \ntab. Si sono riportati gli effetti sia per il file a cui si fa
 riferimento, sia per la directory che lo contiene; questi ultimi possono
 essere capiti se si tiene conto di quanto già detto, e cioè che anche le
 illustrato in \ntab. Si sono riportati gli effetti sia per il file a cui si fa
 riferimento, sia per la directory che lo contiene; questi ultimi possono
 essere capiti se si tiene conto di quanto già detto, e cioè che anche le
-directory sono files, che il sistema tratta in maniera del tutto analoga agli
-altri. 
+directory sono file (che contengono una lista di nomi) che il sistema tratta
+in maniera del tutto analoga a tutti gli altri.
 
 Per questo motivo tutte le volte che compiremo una operazione su un file che
 
 Per questo motivo tutte le volte che compiremo una operazione su un file che
-comporta una modifica della sua directory entry, andremo anche a scrivere
-sulla directory che lo contiene cambiandone il tempo di modifica. Un esempio
-di questo può essere la cancellazione di un file, mentre leggere o scrivere o
-cambiarne i permessi ha effetti solo sui tempi del file.
+comporta una modifica del nome contenuto nella directory, andremo anche a
+scrivere sulla directory che lo contiene cambiandone il tempo di modifica. Un
+esempio di questo può essere la cancellazione di un file, invece leggere o
+scrivere o cambiare i permessi di un file ha effetti solo sui tempi di
+quest'ultimo.
 
 \begin{table}[htb]
   \centering
 
 \begin{table}[htb]
   \centering
@@ -963,7 +963,7 @@ cambiarne i permessi ha effetti solo sui tempi del file.
 \end{table}
 
 Si noti infine come \var{st\_ctime} non abbia nulla a che fare con il tempo di
 \end{table}
 
 Si noti infine come \var{st\_ctime} non abbia nulla a che fare con il tempo di
-creazione del file, usato da molti altri sistemi operativi, che in unix non
+creazione del file, usato in molti altri sistemi operativi, ma che in unix non
 esiste.
 
 
 esiste.
 
 
@@ -1008,9 +1008,8 @@ volte che si modifica l'inode (quindi anche alla chiamata di \func{utime}).
 Questo serve anche come misura di sicurezza per evitare che si possa
 modificare un file nascondendo completamente le proprie tracce.  In realtà la
 cosa resta possibile, se si è in grado di accedere al device, scrivendo
 Questo serve anche come misura di sicurezza per evitare che si possa
 modificare un file nascondendo completamente le proprie tracce.  In realtà la
 cosa resta possibile, se si è in grado di accedere al device, scrivendo
-direttamente sul disco senza passare attraverso il filesystem, ma ovviamente è
-molto più complicato da realizzare.
-
+direttamente sul disco senza passare attraverso il filesystem, ma ovviamente
+in questo modo la cosa è molto più complicata da realizzare.
 
 
 
 
 
 
@@ -1168,7 +1167,7 @@ di accesso sono i seguenti:
   all'amministratore) l'accesso è sempre garantito senza nessun ulteriore
   controllo. Per questo motivo \textsl{root} ha piena libertà di accesso a
   tutti i file.
   all'amministratore) l'accesso è sempre garantito senza nessun ulteriore
   controllo. Per questo motivo \textsl{root} ha piena libertà di accesso a
   tutti i file.
-\item Se l'\textit{effective user id} del processo è uguale all'uid del
+\item Se l'\textit{effective user id} del processo è uguale all'\acr{uid} del
   proprietario del file (nel qual caso si dice che il processo è proprietario
   del file) allora:
   \begin{itemize}
   proprietario del file (nel qual caso si dice che il processo è proprietario
   del file) allora:
   \begin{itemize}