Finita revisione capitolo socket base
[gapil.git] / filedir.tex
index 5bf70964b66b52774db287d41342556f87f8edc9..f428ba8e31aa96a6d6126f41880229b266956a12 100644 (file)
@@ -1,6 +1,6 @@
 %% filedir.tex
 %%
 %% filedir.tex
 %%
-%% Copyright (C) 2000-2015 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2016 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",
 %% 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",
@@ -107,7 +107,7 @@ restituisce una \textit{dentry}, abbreviazione che sta per \textit{directory
   entry}. Le \textit{dentry} sono gli oggetti che il kernel usa per eseguire
 la \textit{pathname resolution}, ciascuna di esse corrisponde ad un
 \textit{pathname} e contiene il riferimento ad un \textit{inode}, che come
   entry}. Le \textit{dentry} sono gli oggetti che il kernel usa per eseguire
 la \textit{pathname resolution}, ciascuna di esse corrisponde ad un
 \textit{pathname} e contiene il riferimento ad un \textit{inode}, che come
-vedremo a breve è l'oggetto usato dal kernel per identificare un un
+vedremo a breve è l'oggetto usato dal kernel per identificare un
 file.\footnote{in questo caso si parla di file come di un qualunque oggetto
   generico che sta sul filesystem e non dell'oggetto file del VFS cui
   accennavamo prima.} La \textit{dentry} ottenuta dalla chiamata alla funzione
 file.\footnote{in questo caso si parla di file come di un qualunque oggetto
   generico che sta sul filesystem e non dell'oggetto file del VFS cui
   accennavamo prima.} La \textit{dentry} ottenuta dalla chiamata alla funzione
@@ -232,7 +232,7 @@ tab.~\ref{tab:file_inode_operations} le più rilevanti.
     \hline
   \end{tabular}
   \caption{Le principali operazioni sugli \textit{inode} definite tramite
     \hline
   \end{tabular}
   \caption{Le principali operazioni sugli \textit{inode} definite tramite
-    \kstruct{inode\_operation}.} 
+    \kstructd{inode\_operation}.} 
   \label{tab:file_inode_operations}
 \end{table}
 
   \label{tab:file_inode_operations}
 \end{table}
 
@@ -328,7 +328,7 @@ tab.~\ref{tab:file_file_operations} le più significative.
                              sez.~\ref{sec:file_asyncronous_io}) sul file.\\
     \hline
   \end{tabular}
                              sez.~\ref{sec:file_asyncronous_io}) sul file.\\
     \hline
   \end{tabular}
-  \caption{Operazioni sui file definite tramite \kstruct{file\_operation}.}
+  \caption{Operazioni sui file definite tramite \kstructd{file\_operation}.}
   \label{tab:file_file_operations}
 \end{table}
 
   \label{tab:file_file_operations}
 \end{table}
 
@@ -2005,7 +2005,7 @@ sez.~\ref{sec:files_std_interface}. La prima funzione di questa interfaccia è
 \end{funcproto}
 
 La funzione apre un \textit{directory stream} per la directory
 \end{funcproto}
 
 La funzione apre un \textit{directory stream} per la directory
-\param{dirname}, ritornando il puntatore ad un oggetto di tipo \type{DIR} (che
+\param{dirname}, ritornando il puntatore ad un oggetto di tipo \typed{DIR} (che
 è il tipo opaco usato dalle librerie per gestire i \textit{directory stream})
 da usare per tutte le operazioni successive, la funzione inoltre posiziona lo
 \textit{stream} sulla prima voce contenuta nella directory.
 è il tipo opaco usato dalle librerie per gestire i \textit{directory stream})
 da usare per tutte le operazioni successive, la funzione inoltre posiziona lo
 \textit{stream} sulla prima voce contenuta nella directory.
@@ -3124,7 +3124,7 @@ sez.~\ref{sec:file_file_times}).
 Si noti come i vari membri della struttura siano specificati come tipi
 primitivi del sistema, di quelli definiti in
 tab.~\ref{tab:intro_primitive_types}, e dichiarati in \headfile{sys/types.h},
 Si noti come i vari membri della struttura siano specificati come tipi
 primitivi del sistema, di quelli definiti in
 tab.~\ref{tab:intro_primitive_types}, e dichiarati in \headfile{sys/types.h},
-con l'eccezione di \type{blksize\_t} e \type{blkcnt\_t} che sono nuovi tipi
+con l'eccezione di \typed{blksize\_t} e \typed{blkcnt\_t} che sono nuovi tipi
 introdotti per rendersi indipendenti dalla piattaforma. 
 
 Benché la descrizione dei commenti di fig.~\ref{fig:file_stat_struct} sia
 introdotti per rendersi indipendenti dalla piattaforma. 
 
 Benché la descrizione dei commenti di fig.~\ref{fig:file_stat_struct} sia
@@ -3921,17 +3921,17 @@ in tab.~\ref{tab:file_bit_perm}.
     \textbf{\var{st\_mode}} bit & \textbf{Significato} \\
     \hline 
     \hline 
     \textbf{\var{st\_mode}} bit & \textbf{Significato} \\
     \hline 
     \hline 
-    \constd{S\_IRUSR} & \textit{user-read}, l'utente può leggere.\\
-    \constd{S\_IWUSR} & \textit{user-write}, l'utente può scrivere.\\
-    \constd{S\_IXUSR} & \textit{user-execute}, l'utente può eseguire.\\ 
+    \const{S\_IRUSR} & \textit{user-read}, l'utente può leggere.\\
+    \const{S\_IWUSR} & \textit{user-write}, l'utente può scrivere.\\
+    \const{S\_IXUSR} & \textit{user-execute}, l'utente può eseguire.\\ 
     \hline            
     \hline            
-    \constd{S\_IRGRP} & \textit{group-read}, il gruppo può leggere.\\
-    \constd{S\_IWGRP} & \textit{group-write}, il gruppo può scrivere.\\
-    \constd{S\_IXGRP} & \textit{group-execute}, il gruppo può eseguire.\\
+    \const{S\_IRGRP} & \textit{group-read}, il gruppo può leggere.\\
+    \const{S\_IWGRP} & \textit{group-write}, il gruppo può scrivere.\\
+    \const{S\_IXGRP} & \textit{group-execute}, il gruppo può eseguire.\\
     \hline            
     \hline            
-    \constd{S\_IROTH} & \textit{other-read}, tutti possono leggere.\\
-    \constd{S\_IWOTH} & \textit{other-write}, tutti possono scrivere.\\
-    \constd{S\_IXOTH} & \textit{other-execute}, tutti possono eseguire.\\
+    \const{S\_IROTH} & \textit{other-read}, tutti possono leggere.\\
+    \const{S\_IWOTH} & \textit{other-write}, tutti possono scrivere.\\
+    \const{S\_IXOTH} & \textit{other-execute}, tutti possono eseguire.\\
     \hline              
   \end{tabular}
   \caption{I bit dei permessi di accesso ai file, come definiti in 
     \hline              
   \end{tabular}
   \caption{I bit dei permessi di accesso ai file, come definiti in 
@@ -4347,8 +4347,8 @@ filename e su un file descriptor, i loro prototipi sono:
 
 Entrambe le funzioni utilizzano come secondo argomento \param{mode}, una
 variabile dell'apposito tipo primitivo \type{mode\_t} (vedi
 
 Entrambe le funzioni utilizzano come secondo argomento \param{mode}, una
 variabile dell'apposito tipo primitivo \type{mode\_t} (vedi
-tab.~\ref{tab:intro_primitive_types}) utilizzato per specificare i permessi sui
-file.
+tab.~\ref{tab:intro_primitive_types}) utilizzato per specificare i permessi
+sui file.
 
 \begin{table}[!htb]
   \centering
 
 \begin{table}[!htb]
   \centering
@@ -4358,24 +4358,24 @@ file.
     \textbf{\param{mode}} & \textbf{Valore} & \textbf{Significato} \\
     \hline
     \hline
     \textbf{\param{mode}} & \textbf{Valore} & \textbf{Significato} \\
     \hline
     \hline
-    \constd{S\_ISUID} & 04000 & Set user ID  bit.\\
-    \constd{S\_ISGID} & 02000 & Set group ID bit.\\
-    \constd{S\_ISVTX} & 01000 & Sticky bit.\\
+    \const{S\_ISUID} & 04000 & Set user ID  bit.\\
+    \const{S\_ISGID} & 02000 & Set group ID bit.\\
+    \const{S\_ISVTX} & 01000 & Sticky bit.\\
     \hline
     \hline
-    \constd{S\_IRWXU} & 00700 & L'utente ha tutti i permessi.\\
-    \constd{S\_IRUSR} & 00400 & L'utente ha il permesso di lettura.\\
-    \constd{S\_IWUSR} & 00200 & L'utente ha il permesso di scrittura.\\
-    \constd{S\_IXUSR} & 00100 & L'utente ha il permesso di esecuzione.\\
+    \const{S\_IRWXU} & 00700 & L'utente ha tutti i permessi.\\
+    \const{S\_IRUSR} & 00400 & L'utente ha il permesso di lettura.\\
+    \const{S\_IWUSR} & 00200 & L'utente ha il permesso di scrittura.\\
+    \const{S\_IXUSR} & 00100 & L'utente ha il permesso di esecuzione.\\
     \hline
     \hline
-    \constd{S\_IRWXG} & 00070 & Il gruppo ha tutti i permessi.\\
-    \constd{S\_IRGRP} & 00040 & Il gruppo ha il permesso di lettura.\\
-    \constd{S\_IWGRP} & 00020 & Il gruppo ha il permesso di scrittura.\\
-    \constd{S\_IXGRP} & 00010 & Il gruppo ha il permesso di esecuzione.\\
+    \const{S\_IRWXG} & 00070 & Il gruppo ha tutti i permessi.\\
+    \const{S\_IRGRP} & 00040 & Il gruppo ha il permesso di lettura.\\
+    \const{S\_IWGRP} & 00020 & Il gruppo ha il permesso di scrittura.\\
+    \const{S\_IXGRP} & 00010 & Il gruppo ha il permesso di esecuzione.\\
     \hline
     \hline
-    \constd{S\_IRWXO} & 00007 & Gli altri hanno tutti i permessi.\\
-    \constd{S\_IROTH} & 00004 & Gli altri hanno il permesso di lettura.\\
-    \constd{S\_IWOTH} & 00002 & Gli altri hanno il permesso di scrittura.\\
-    \constd{S\_IXOTH} & 00001 & Gli altri hanno il permesso di esecuzione.\\
+    \const{S\_IRWXO} & 00007 & Gli altri hanno tutti i permessi.\\
+    \const{S\_IROTH} & 00004 & Gli altri hanno il permesso di lettura.\\
+    \const{S\_IWOTH} & 00002 & Gli altri hanno il permesso di scrittura.\\
+    \const{S\_IXOTH} & 00001 & Gli altri hanno il permesso di esecuzione.\\
     \hline
   \end{tabular}
   \caption{Valori delle costanti usate per indicare i vari bit di
     \hline
   \end{tabular}
   \caption{Valori delle costanti usate per indicare i vari bit di
@@ -5334,11 +5334,11 @@ queste funzioni che prendiamo in esame è \funcd{acl\_init}, il cui prototipo
 
 La funzione alloca ed inizializza un'area di memoria che verrà usata per
 mantenere i dati di una ACL contenente fino ad un massimo di \param{count}
 
 La funzione alloca ed inizializza un'area di memoria che verrà usata per
 mantenere i dati di una ACL contenente fino ad un massimo di \param{count}
-voci. La funzione ritorna un valore di tipo \type{acl\_t} da usare in tutte le
+voci. La funzione ritorna un valore di tipo \typed{acl\_t} da usare in tutte le
 altre funzioni che operano sulla ACL. La funzione si limita alla allocazione
 iniziale e non inserisce nessun valore nella ACL che resta vuota. 
 
 altre funzioni che operano sulla ACL. La funzione si limita alla allocazione
 iniziale e non inserisce nessun valore nella ACL che resta vuota. 
 
-Si tenga presente che pur essendo \type{acl\_t} un tipo opaco che identifica
+Si tenga presente che pur essendo \typed{acl\_t} un tipo opaco che identifica
 ``\textsl{l'oggetto}'' ACL, il valore restituito dalla funzione non è altro
 che un puntatore all'area di memoria allocata per i dati richiesti. Pertanto
 in caso di fallimento verrà restituito un puntatore nullo di tipo
 ``\textsl{l'oggetto}'' ACL, il valore restituito dalla funzione non è altro
 che un puntatore all'area di memoria allocata per i dati richiesti. Pertanto
 in caso di fallimento verrà restituito un puntatore nullo di tipo
@@ -5473,7 +5473,7 @@ tramite un file descriptor usando \func{acl\_get\_fd} o con un
 funzione, che può richiedere anche la ACL relativa ad una directory, il
 secondo argomento \param{type} consente di specificare se si vuole ottenere la
 ACL di default o quella di accesso. Questo argomento deve essere di tipo
 funzione, che può richiedere anche la ACL relativa ad una directory, il
 secondo argomento \param{type} consente di specificare se si vuole ottenere la
 ACL di default o quella di accesso. Questo argomento deve essere di tipo
-\type{acl\_type\_t} e può assumere solo i due valori riportati in
+\typed{acl\_type\_t} e può assumere solo i due valori riportati in
 tab.~\ref{tab:acl_type}.
 
 \begin{table}[htb]
 tab.~\ref{tab:acl_type}.
 
 \begin{table}[htb]
@@ -5832,7 +5832,7 @@ prototipo è:
 }
 \end{funcproto}
 
 }
 \end{funcproto}
 
-La funzione è del tutto è analoga a \funcd{acl\_set\_file} ma opera
+La funzione è del tutto è analoga a \func{acl\_set\_file} ma opera
 esclusivamente sui file identificati tramite un file descriptor. Non dovendo
 avere a che fare con directory (e con la conseguente possibilità di avere una
 ACL di default) la funzione non necessita che si specifichi il tipo di ACL,
 esclusivamente sui file identificati tramite un file descriptor. Non dovendo
 avere a che fare con directory (e con la conseguente possibilità di avere una
 ACL di default) la funzione non necessita che si specifichi il tipo di ACL,
@@ -5851,7 +5851,7 @@ manuale.
 
 Se si vuole operare direttamente sui contenuti di un oggetto di tipo
 \type{acl\_t} infatti occorre fare riferimento alle singole voci tramite gli
 
 Se si vuole operare direttamente sui contenuti di un oggetto di tipo
 \type{acl\_t} infatti occorre fare riferimento alle singole voci tramite gli
-opportuni puntatori di tipo \type{acl\_entry\_t}, che possono essere ottenuti
+opportuni puntatori di tipo \typed{acl\_entry\_t}, che possono essere ottenuti
 dalla funzione \funcm{acl\_get\_entry} (per una voce esistente) o dalla
 funzione \funcm{acl\_create\_entry} per una voce da aggiungere. Nel caso della
 prima funzione si potrà poi ripetere la lettura per ottenere i puntatori alle
 dalla funzione \funcm{acl\_get\_entry} (per una voce esistente) o dalla
 funzione \funcm{acl\_create\_entry} per una voce da aggiungere. Nel caso della
 prima funzione si potrà poi ripetere la lettura per ottenere i puntatori alle
@@ -6509,7 +6509,7 @@ casistica assai complessa.
 Per i kernel fino al 2.6.25, o se non si attiva il supporto per le
 \textit{file capabilities}, il \textit{capabilities bounding set} è un
 parametro generale di sistema, il cui valore viene riportato nel file
 Per i kernel fino al 2.6.25, o se non si attiva il supporto per le
 \textit{file capabilities}, il \textit{capabilities bounding set} è un
 parametro generale di sistema, il cui valore viene riportato nel file
-\sysctlfile{kernel/cap-bound}. Il suo valore iniziale è definito in sede di
+\sysctlfiled{kernel/cap-bound}. Il suo valore iniziale è definito in sede di
 compilazione del kernel, e da sempre ha previsto come default la presenza di
 tutte le \textit{capabilities} eccetto \const{CAP\_SETPCAP}. In questa
 situazione solo il primo processo eseguito nel sistema (quello con
 compilazione del kernel, e da sempre ha previsto come default la presenza di
 tutte le \textit{capabilities} eccetto \const{CAP\_SETPCAP}. In questa
 situazione solo il primo processo eseguito nel sistema (quello con
@@ -6534,7 +6534,7 @@ tutti, compreso l'amministratore.\footnote{la qual cosa, visto il default
 Con il kernel 2.6.25 e le \textit{file capabilities} il \textit{bounding set}
 è diventato una proprietà di ciascun processo, che viene propagata invariata
 sia attraverso una \func{fork} che una \func{exec}. In questo caso il file
 Con il kernel 2.6.25 e le \textit{file capabilities} il \textit{bounding set}
 è diventato una proprietà di ciascun processo, che viene propagata invariata
 sia attraverso una \func{fork} che una \func{exec}. In questo caso il file
-\sysctlfilem{kernel/cap-bound} non esiste e \texttt{init} non ha nessun
+\sysctlfile{kernel/cap-bound} non esiste e \texttt{init} non ha nessun
 ruolo speciale, inoltre in questo caso all'avvio il valore iniziale prevede la
 presenza di tutte le capacità (compresa \const{CAP\_SETPCAP}). 
 
 ruolo speciale, inoltre in questo caso all'avvio il valore iniziale prevede la
 presenza di tutte le capacità (compresa \const{CAP\_SETPCAP}). 
 
@@ -6976,7 +6976,7 @@ sez.~\ref{sec:socket_credential_xxx}), assegnare classi privilegiate
 (\const{IOPRIO\_CLASS\_RT} e prima del kernel 2.6.25 anche
 \const{IOPRIO\_CLASS\_IDLE}) per lo scheduling dell'I/O (vedi
 sez.~\ref{sec:io_priority}), superare il limite di sistema sul numero massimo
 (\const{IOPRIO\_CLASS\_RT} e prima del kernel 2.6.25 anche
 \const{IOPRIO\_CLASS\_IDLE}) per lo scheduling dell'I/O (vedi
 sez.~\ref{sec:io_priority}), superare il limite di sistema sul numero massimo
-di file aperti,\footnote{quello indicato da \sysctlfile{fs/file-max}.}
+di file aperti,\footnote{quello indicato da \sysctlfiled{fs/file-max}.}
 effettuare operazioni privilegiate sulle chiavi mantenute dal kernel (vedi
 sez.~\ref{sec:keyctl_management}), usare la funzione \func{lookup\_dcookie},
 usare \const{CLONE\_NEWNS} con \func{unshare} e \func{clone}, (vedi
 effettuare operazioni privilegiate sulle chiavi mantenute dal kernel (vedi
 sez.~\ref{sec:keyctl_management}), usare la funzione \func{lookup\_dcookie},
 usare \const{CLONE\_NEWNS} con \func{unshare} e \func{clone}, (vedi
@@ -7120,7 +7120,7 @@ della suddetta libreria attraverso l'opzione \texttt{-lcap}.
 
 Le funzioni dell'interfaccia alle \textit{capabilities} definite nelle bozze
 dello standard POSIX.1e prevedono l'uso di un tipo di dato opaco,
 
 Le funzioni dell'interfaccia alle \textit{capabilities} definite nelle bozze
 dello standard POSIX.1e prevedono l'uso di un tipo di dato opaco,
-\type{cap\_t}, come puntatore ai dati mantenuti nel cosiddetto
+\typed{cap\_t}, come puntatore ai dati mantenuti nel cosiddetto
 \textit{capability state},\footnote{si tratta in sostanza di un puntatore ad
   una struttura interna utilizzata dalle librerie, i cui campi non devono mai
   essere acceduti direttamente.} in sono memorizzati tutti i dati delle
 \textit{capability state},\footnote{si tratta in sostanza di un puntatore ad
   una struttura interna utilizzata dalle librerie, i cui campi non devono mai
   essere acceduti direttamente.} in sono memorizzati tutti i dati delle
@@ -7263,7 +7263,7 @@ tab.~\ref{tab:cap_set_identifier}.
     \constd{CAP\_INHERITABLE}& Capacità dell'insieme \textsl{ereditabile}.\\
     \hline
   \end{tabular}
     \constd{CAP\_INHERITABLE}& Capacità dell'insieme \textsl{ereditabile}.\\
     \hline
   \end{tabular}
-  \caption{Valori possibili per il tipo di dato \type{cap\_flag\_t} che
+  \caption{Valori possibili per il tipo di dato \typed{cap\_flag\_t} che
     identifica gli insiemi delle \textit{capabilities}.}
   \label{tab:cap_set_identifier}
 \end{table}
     identifica gli insiemi delle \textit{capabilities}.}
   \label{tab:cap_set_identifier}
 \end{table}
@@ -7335,7 +7335,7 @@ In entrambe le funzioni l'argomento \param{cap\_p} indica il puntatore al
 indica su quale dei tre insiemi si intende operare, sempre con i valori di
 tab.~\ref{tab:cap_set_identifier}.  La capacità che si intende controllare o
 impostare invece deve essere specificata attraverso una variabile di tipo
 indica su quale dei tre insiemi si intende operare, sempre con i valori di
 tab.~\ref{tab:cap_set_identifier}.  La capacità che si intende controllare o
 impostare invece deve essere specificata attraverso una variabile di tipo
-\type{cap\_value\_t}, che può prendere come valore uno qualunque di quelli
+\typed{cap\_value\_t}, che può prendere come valore uno qualunque di quelli
 riportati in tab.~\ref{tab:proc_capabilities}, in questo caso però non è
 possibile combinare diversi valori in una maschera binaria, una variabile di
 tipo \type{cap\_value\_t} può indicare una sola capacità.\footnote{in
 riportati in tab.~\ref{tab:proc_capabilities}, in questo caso però non è
 possibile combinare diversi valori in una maschera binaria, una variabile di
 tipo \type{cap\_value\_t} può indicare una sola capacità.\footnote{in
@@ -7360,7 +7360,7 @@ tab.~\ref{tab:cap_value_type}.
     \constd{CAP\_SET}  & La capacità è impostata.\\
     \hline
   \end{tabular}
     \constd{CAP\_SET}  & La capacità è impostata.\\
     \hline
   \end{tabular}
-  \caption{Valori possibili per il tipo di dato \type{cap\_flag\_value\_t} che
+  \caption{Valori possibili per il tipo di dato \typed{cap\_flag\_value\_t} che
     indica lo stato di una capacità.}
   \label{tab:cap_value_type}
 \end{table}
     indica lo stato di una capacità.}
   \label{tab:cap_value_type}
 \end{table}