Altri indici, aggiornamenti date di copyright e dizionari locali.
[gapil.git] / filedir.tex
index 1912e1df8261ea4f57632dba91b5524396d84ce5..84e702263b54b3da646cf8b8c8d8a69886f443e4 100644 (file)
@@ -1,6 +1,6 @@
 %% filedir.tex
 %%
-%% Copyright (C) 2000-2005 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2006 Simone Piccardi.  Permission is granted to
 %% copy, distribute and/or modify this document under the terms of the GNU Free
 %% Documentation License, Version 1.1 or any later version published by the
 %% Free Software Foundation; with the Invariant Sections being "Un preambolo",
@@ -615,11 +615,11 @@ permessi sono comunque modificati nella maniera usuale dal valore di
 \var{umask} (si veda sez.~\ref{sec:file_umask}).
 
 Per il tipo di file può essere specificato solo uno fra: \const{S\_IFREG} per
-un file regolare (che sarà creato vuoto), \const{S\_IFBLK} per un device a
-blocchi, \const{S\_IFCHR} per un device a caratteri e \const{S\_IFIFO} per una
-fifo. Un valore diverso comporterà l'errore \errcode{EINVAL}. Qualora si sia
-specificato in \param{mode} un file di dispositivo, il valore di \param{dev}
-viene usato per indicare a quale dispositivo si fa riferimento.
+un file regolare (che sarà creato vuoto), \const{S\_IFBLK} per un dispositivo
+a blocchi, \const{S\_IFCHR} per un dispositivo a caratteri e \const{S\_IFIFO}
+per una fifo. Un valore diverso comporterà l'errore \errcode{EINVAL}. Qualora
+si sia specificato in \param{mode} un file di dispositivo, il valore di
+\param{dev} viene usato per indicare a quale dispositivo si fa riferimento.
 
 Solo l'amministratore può creare un file di dispositivo o un file regolare
 usando questa funzione; ma in Linux\footnote{la funzione non è prevista dallo
@@ -909,20 +909,27 @@ 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 (\param{select}) e
-l'ordinamento di tutte le voci selezionate (\param{compar}). 
+controllano rispettivamente la selezione di una voce (quella passata con
+l'argomento \param{select}) 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 come argomento alla funzione di
-\param{select}; se questa ritorna un valore diverso da zero la voce viene
-inserita in una struttura allocata dinamicamente con \func{malloc}, qualora si
-specifichi un valore \val{NULL} per \func{select} vengono selezionate tutte le
-voci. Tutte le voci selezionate vengono poi inserite un una lista (anch'essa
-allocata con \func{malloc}, che viene riordinata tramite \func{qsort} usando
-la funzione \param{compar} come criterio di ordinamento; alla fine l'indirizzo
-della lista ordinata è restituito nell'argomento \param{namelist}.
-
-Per l'ordinamento sono disponibili anche due funzioni predefinite,
+\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.
+
+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:
 \begin{functions}
   \headdecl{dirent.h} 
@@ -953,7 +960,7 @@ dopo \texttt{file4}.)
 
 Un semplice esempio dell'uso di queste funzioni è riportato in
 fig.~\ref{fig:file_my_ls}, dove si è riportata la sezione principale di un
-programma che, usando la routine di scansione illustrata in
+programma che, usando la funzione di scansione illustrata in
 fig.~\ref{fig:file_dirscan}, stampa i nomi dei file contenuti in una directory
 e la relativa dimensione (in sostanza una versione semplificata del comando
 \cmd{ls}).
@@ -995,7 +1002,7 @@ valore di ritorno per indicare una esecuzione senza errori.
   \begin{minipage}[c]{15.6cm}
     \includecodesample{listati/DirScan.c}
   \end{minipage}
-  \caption{Codice della routine di scansione di una directory contenuta nel
+  \caption{Codice della funzione di scansione di una directory contenuta nel
     file \file{DirScan.c}.} 
   \label{fig:file_dirscan}
 \end{figure}
@@ -1315,7 +1322,7 @@ della directory 
   condition}\itindex{race~condition} non si pongono.
 
 
-\section{La manipolazione delle caratteristiche dei files}
+\section{La manipolazione delle caratteristiche dei file}
 \label{sec:file_infos}
 
 Come spiegato in sez.~\ref{sec:file_filesystem} tutte le informazioni generali
@@ -1336,7 +1343,7 @@ sez.~\ref{sec:file_access_control}).
 La lettura delle informazioni relative ai file è fatta attraverso la famiglia
 delle funzioni \func{stat} (\funcd{stat}, \funcd{fstat} e \funcd{lstat});
 questa è la funzione che ad esempio usa il comando \cmd{ls} per poter ottenere
-e mostrare tutti i dati dei files. I prototipi di queste funzioni sono i
+e mostrare tutti i dati dei file. I prototipi di queste funzioni sono i
 seguenti:
 \begin{functions}
   \headdecl{sys/types.h} 
@@ -1349,7 +1356,7 @@ seguenti:
   
   \funcdecl{int lstat(const char *file\_name, struct stat *buf)} Identica a
   \func{stat} eccetto che se il \param{file\_name} è un link simbolico vengono
-  lette le informazioni relativae ad esso e non al file a cui fa riferimento.
+  lette le informazioni relative ad esso e non al file a cui fa riferimento.
   
   \funcdecl{int fstat(int filedes, struct stat *buf)} Identica a \func{stat}
   eccetto che si usa con un file aperto, specificato tramite il suo file
@@ -2032,8 +2039,9 @@ proposito).
 Infine Linux utilizza il bit \acr{sgid} per una ulteriore estensione mutuata
 da SVr4. Il caso in cui un file ha il bit \acr{sgid} impostato senza che lo
 sia anche il corrispondente bit di esecuzione viene utilizzato per attivare
-per quel file il \textit{mandatory locking} (affronteremo questo argomento in
-dettaglio più avanti, in sez.~\ref{sec:file_mand_locking}).
+per quel file il \itindex{mandatory~locking} \textit{mandatory locking}
+(affronteremo questo argomento in dettaglio più avanti, in
+sez.~\ref{sec:file_mand_locking}).
 
 \itindend{suid~bit}
 \itindend{sgid~bit}
@@ -2045,7 +2053,7 @@ dettaglio pi
 
 L'ultimo dei bit rimanenti, identificato dalla costante \const{S\_ISVTX}, è in
 parte un rimasuglio delle origini dei sistemi Unix. A quell'epoca infatti la
-memoria virtuale e l'accesso ai files erano molto meno sofisticati e per
+memoria virtuale e l'accesso ai file erano molto meno sofisticati e per
 ottenere la massima velocità possibile per i programmi usati più comunemente
 si poteva impostare questo bit.
 
@@ -2414,7 +2422,7 @@ privilegi di root entrambi i bit \itindex{suid~bit} \acr{suid} e
 \itindex{sgid~bit} \acr{sgid} vengono cancellati. Questo non avviene per il
 bit \acr{sgid} nel caso in cui esso sia usato (in assenza del corrispondente
 permesso di esecuzione) per indicare che per il file è attivo il
-\textit{mandatory locking}.
+\itindex{mandatory~locking} \textit{mandatory locking}.
 
 
 \subsection{Un quadro d'insieme sui permessi}
@@ -2447,7 +2455,8 @@ ha alcun effetto qualora il processo possieda i privilegi di amministratore.
     \hline
     1&-&-&-&-&-&-&-&-&-&-&-&Se eseguito ha i permessi del proprietario\\
     -&1&-&-&-&1&-&-&-&-&-&-&Se eseguito ha i permessi del gruppo proprietario\\
-    -&1&-&-&-&0&-&-&-&-&-&-&Il \textit{mandatory locking} è abilitato\\
+    -&1&-&-&-&0&-&-&-&-&-&-&Il \itindex{mandatory~locking} 
+                            \textit{mandatory locking} è abilitato\\
     -&-&1&-&-&-&-&-&-&-&-&-&Non utilizzato\\
     -&-&-&1&-&-&-&-&-&-&-&-&Permesso di lettura per il proprietario\\
     -&-&-&-&1&-&-&-&-&-&-&-&Permesso di scrittura per il proprietario\\
@@ -2603,3 +2612,34 @@ programmi e librerie) di cui il server potrebbe avere bisogno.
 %%% 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
+% LocalWords:  ELOOP ENOSPC EIO pathname nlink stat vfat fsck EISDIR ENOENT cap
+% LocalWords:  POSIX socket fifo sticky root nell'inode system call count crash
+% LocalWords:  all'inode descriptor remove rename rmdir stdio glibc libc NFS DT
+% LocalWords:  ENOTEMPTY EBUSY mount point EINVAL soft symbolic tab symlink fig
+% LocalWords:  dangling access chdir chmod chown creat exec lchown lstat mkdir
+% LocalWords:  mkfifo mknod opendir pathconf readlink truncate path buff size
+% LocalWords:  grub bootloader grep linux MAXSYMLINKS cat VFS sys dirname fcntl
+% LocalWords:  dev l'inode umask IFREG IFBLK IFCHR IFIFO SVr sgid BSD SVID NULL
+% LocalWords:  stream dirent EMFILE ENFILE dirfd SOURCE fchdir readdir struct
+% LocalWords:  EBADF namlen HAVE thread entry result value argument fileno ino
+% LocalWords:  name TYPE OFF RECLEN UNKNOWN REG SOCK CHR BLK type IFTODT DTTOIF
+% LocalWords:  DTYPE off reclen seekdir telldir void rewinddir closedir select
+% LocalWords:  namelist compar malloc qsort alphasort versionsort strcoll myls
+% LocalWords:  strcmp DirScan direntry while current working home shell pwd get
+% LocalWords:  dell'inode getcwd ERANGE getwd change fd race condition tmpnam
+% LocalWords:  string tmpdir TMP tempnam pfx TMPNAME suid tmp EXCL tmpfile pid
+% LocalWords:  EINTR mktemp mkstemp stlib template filename XXXXXX OpenBSD buf
+% LocalWords:  mkdtemp fstat filedes nell'header padding ISREG ISDIR ISCHR IFMT
+% LocalWords:  ISBLK ISFIFO ISLNK ISSOCK IFSOCK IFLNK IFDIR ISUID UID ISGID GID
+% LocalWords:  ISVTX IRUSR IWUSR IXUSR IRGRP IWGRP IXGRP IROTH IWOTH IXOTH du
+% LocalWords:  blocks blksize holes lseek TRUNC ftruncate length lenght ETXTBSY
+% LocalWords:  hole atime read utime mtime write ctime modification leafnode cp
+% LocalWords:  make fchmod fchown utimbuf times actime modtime Mac owner uid fs
+% 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