Altre correzioni, ortografia e vocabolario locale.
[gapil.git] / filedir.tex
index 239c9950e51c5db9d8bcdc0ef509dbf7e1858d35..d2f2de6bbd92945ea106ef065ce4e4c0984ab1d8 100644 (file)
@@ -8,6 +8,7 @@
 %% license is included in the section entitled "GNU Free Documentation
 %% License".
 %%
+
 \chapter{File e directory}
 \label{cha:files_and_dirs}
 
@@ -432,7 +433,7 @@ stringa con un carattere nullo e la tronca alla dimensione specificata da
 
 \begin{figure}[htb]
   \centering
-  \includegraphics[width=9cm]{img/link_loop}
+  \includegraphics[width=8cm]{img/link_loop}
   \caption{Esempio di loop nel filesystem creato con un link simbolico.}
   \label{fig:file_link_loop}
 \end{figure}
@@ -828,11 +829,11 @@ il nome del relativo campo; nel nostro caso sono definite le macro
 Per quanto riguarda il significato dei campi opzionali, il campo \var{d\_type}
 indica il tipo di file (fifo, directory, link simbolico, ecc.); i suoi
 possibili valori\footnote{fino alla versione 2.1 delle \acr{glibc} questo
-  campo, pur presente nella struttura, non è implementato, e resta sempre al
+  campo, pur presente nella struttura, non era implementato, e resta sempre al
   valore \const{DT\_UNKNOWN}.}  sono riportati in
-tab.~\ref{tab:file_dtype_macro}; per la conversione da e verso l'analogo valore
-mantenuto dentro il campo \var{st\_mode} di \struct{stat} sono definite anche
-due macro di conversione \macro{IFTODT} e \macro{DTTOIF}:
+tab.~\ref{tab:file_dtype_macro}; per la conversione da e verso l'analogo
+valore mantenuto dentro il campo \var{st\_mode} di \struct{stat} sono definite
+anche due macro di conversione \macro{IFTODT} e \macro{DTTOIF}:
 \begin{functions}
   \funcdecl{int IFTODT(mode\_t MODE)} Converte il tipo di file dal formato di
   \var{st\_mode} a quello di \var{d\_type}.
@@ -897,7 +898,7 @@ ed ordinamento) del contenuto di una directory; la funzione 
 \funcd{scandir}\footnote{in Linux questa funzione è stata introdotta fin dalle
   libc4.} ed il suo prototipo è:
 \begin{prototype}{dirent.h}{int scandir(const char *dir, 
-    struct dirent ***namelist, int(*select)(const struct dirent *),
+    struct dirent ***namelist, int(*filter)(const struct dirent *),
     int(*compar)(const struct dirent **, const struct dirent **))} 
   
   Esegue una scansione di un \textit{directory stream}.
@@ -909,27 +910,33 @@ ed ordinamento) del contenuto di una directory; la funzione 
 Al solito, per la presenza fra gli argomenti di due puntatori a funzione, il
 prototipo non è molto comprensibile; queste funzioni però sono quelle che
 controllano rispettivamente la selezione di una voce (quella passata con
-l'argomento \param{select}) e l'ordinamento di tutte le voci selezionate
+l'argomento \param{filter}) e l'ordinamento di tutte le voci selezionate
 (quella specificata dell'argomento \param{compar}).
 
 La funzione legge tutte le voci della directory indicata dall'argomento
-\param{dir}, passando ciascuna di esse (una struttura \struct{dirent}) come
-argomento della funzione di selezione specificata da \param{select}; se questa
-ritorna un valore diverso da zero la voce viene inserita in un vettore che
-viene allocato dinamicamente con \func{malloc}.  Qualora si specifichi un
-valore \val{NULL} per \func{select} vengono selezionate tutte le voci.
+\param{dir}, passando un puntatore a ciascuna di esse (una struttura
+\struct{dirent}) come argomento della funzione di selezione specificata da
+\param{filter}; se questa ritorna un valore diverso da zero il puntatore viene
+inserito in un vettore che viene allocato dinamicamente con \func{malloc}.
+Qualora si specifichi un valore \val{NULL} per l'argomento \func{filter} non
+viene fatta nessuna selezione e si ottengono tutte le voci presenti.
 
 Le voci selezionate possono essere riordinate tramite \func{qsort}, le modalità
 del riordinamento possono essere personalizzate usando la funzione
-\param{compar} come criterio di ordinamento di\func{qsort}, la funzione prende
-come argomenti le due strutture \struct{dirent} da confrontare restituendo un
-valore positivo, nullo o negativo per indicarne l'ordinamento; alla fine
-l'indirizzo della lista delle strutture \struct{dirent} così ordinate viene
-restituito nell'argomento \param{namelist}.
-
-Per l'ordinamento (vale a dire come valori possibili per l'argomento
-\param{compar}) sono disponibili anche due funzioni predefinite,
-\funcd{alphasort} e \funcd{versionsort}, i cui prototipi sono:
+\param{compar} come criterio di ordinamento di \func{qsort}, la funzione
+prende come argomenti le due strutture \struct{dirent} da confrontare
+restituendo un valore positivo, nullo o negativo per indicarne l'ordinamento;
+alla fine l'indirizzo della lista ordinata dei puntatori alle strutture
+\struct{dirent} viene restituito nell'argomento
+\param{namelist}.\footnote{la funzione alloca automaticamente la lista, e
+  restituisce, come \itindex{value~result~argument} \textit{value result
+    argument}, l'indirizzo della stessa; questo significa che \param{namelist}
+  deve essere dichiarato come \code{struct dirent **namelist} ed alla funzione
+  si deve passare il suo indirizzo.}
+
+Per l'ordinamento, vale a dire come valori possibili per l'argomento
+\param{compar} sono disponibili due funzioni predefinite, \funcd{alphasort} e
+\funcd{versionsort}, i cui prototipi sono:
 \begin{functions}
   \headdecl{dirent.h} 
   
@@ -1612,13 +1619,6 @@ cancellare i file che non servono pi
 il programma \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
-tempo di cambiamento di stato) per decidere quali file devono essere
-archiviati per il backup. Il comando \cmd{ls} (quando usato con le opzioni
-\cmd{-l} o \cmd{-t}) mostra i tempi dei file secondo lo schema riportato
-nell'ultima colonna di tab.~\ref{tab:file_file_times}.
-
 \begin{table}[htb]
   \centering
   \footnotesize
@@ -1692,6 +1692,14 @@ nell'ultima colonna di tab.~\ref{tab:file_file_times}.
   \label{tab:file_times_effects}  
 \end{table}
 
+
+Il tempo di ultima modifica invece viene usato da \cmd{make} per decidere
+quali file necessitano di essere ricompilati o (talvolta insieme anche al
+tempo di cambiamento di stato) per decidere quali file devono essere
+archiviati per il backup. Il comando \cmd{ls} (quando usato con le opzioni
+\cmd{-l} o \cmd{-t}) mostra i tempi dei file secondo lo schema riportato
+nell'ultima colonna di tab.~\ref{tab:file_file_times}.
+
 L'effetto delle varie funzioni di manipolazione dei file sui tempi è
 illustrato in tab.~\ref{tab:file_times_effects}. Si sono riportati gli effetti
 sia per il file a cui si fa riferimento, sia per la directory che lo contiene;
@@ -2596,11 +2604,6 @@ contiene i file.  Si tenga presente per
 replicare all'interno della \textit{chroot jail} tutti i file (in genere
 programmi e librerie) di cui il server potrebbe avere bisogno.
 
-%%% Local Variables: 
-%%% mode: latex
-%%% TeX-master: "gapil"
-%%% End: 
-
 % LocalWords:  sez like filesystem unlink MacOS Windows VMS inode kernel unistd
 % LocalWords:  un'etichetta int const char oldpath newpath errno EXDEV EPERM st
 % LocalWords:  EEXIST EMLINK EACCES ENAMETOOLONG ENOTDIR EFAULT ENOMEM EROFS ls
@@ -2630,4 +2633,9 @@ programmi e librerie) di cui il server potrebbe avere bisogno.
 % LocalWords:  gid Control List patch mandatory control execute group other all
 % LocalWords:  dell' effective passwd IGID locking swap saved text IRWXU IRWXG
 % LocalWords:  IRWXO ext reiser capability FSETID mask capabilities chroot jail
-% LocalWords:  FTP Di
+% LocalWords:  FTP Di filter reiserfs
+
+%%% Local Variables: 
+%%% mode: latex
+%%% TeX-master: "gapil"
+%%% End: