Il tipo di filesystem che si vuole montare è specificato
dall'argomento \param{filesystemtype}, che deve essere una delle stringhe
-riportate nel file \procfile{/proc/filesystems} che, come accennato in
+riportate nel file \procfilem{/proc/filesystems} che, come accennato in
sez.~\ref{sec:file_vfs_work}, contiene l'elenco dei filesystem supportati dal
kernel. Nel caso si sia indicato un filesystem virtuale, che non è associato a
nessun file di dispositivo, il contenuto di \param{source} viene ignorato.
\label{fig:sys_statfs}
\end{figure}
-\conffilebeg{/etc/mtab}
-La \acr{glibc} provvede infine una serie di funzioni per la gestione dei due
-file \conffiled{/etc/fstab}\footnote{più precisamente \funcm{setfsent},
- \funcm{getfsent}, \funcm{getfsfile}, \funcm{getfsspec}, \funcm{endfsent}.}
-ed \conffile{/etc/mtab}\footnote{più precisamente \funcm{setmntent},
- \funcm{getmntent},\funcm{getmntent\_r}, \funcm{addmntent},\funcm{endmntent},
- \funcm{hasmntopt}.} che convenzionalmente sono usati in quasi tutti i
-sistemi unix-like per mantenere rispettivamente le informazioni riguardo ai
-filesystem da montare e a quelli correntemente montati. Le funzioni servono a
-leggere il contenuto di questi file in opportune strutture \struct{fstab} e
-\struct{mntent}, e, nel caso di \conffile{/etc/mtab}, per inserire e rimuovere
-le voci presenti nel file.
+\conffilebeg{/etc/mtab} La \acr{glibc} provvede infine una serie di funzioni
+per la gestione dei due file \conffiled{/etc/fstab}\footnote{più precisamente
+ \funcm{setfsent}, \funcm{getfsent}, \funcm{getfsfile}, \funcm{getfsspec},
+ \funcm{endfsent}.} ed \conffile{/etc/mtab}\footnote{più precisamente
+ \funcm{setmntent}, \funcm{getmntent},\funcm{getmntent\_r},
+ \funcm{addmntent},\funcm{endmntent}, \funcm{hasmntopt}.} che
+convenzionalmente sono usati in quasi tutti i sistemi unix-like per mantenere
+rispettivamente le informazioni riguardo ai filesystem da montare e a quelli
+correntemente montati. Le funzioni servono a leggere il contenuto di questi
+file in opportune strutture \structd{fstab} e \structd{mntent}, e, nel caso di
+\conffile{/etc/mtab}, per inserire e rimuovere le voci presenti nel file.
In generale si dovrebbero usare queste funzioni, in particolare quelle
relative a \conffile{/etc/mtab}, quando si debba scrivere un programma che
necessità di specificare il numero tramite delle opportune macro, così da non
avere problemi di compatibilità con eventuali ulteriori estensioni.
-Le macro sono definite nel file \headfile{sys/sysmacros.h},\footnote{se si usa
- la \acr{glibc} dalla versione 2.3.3 queste macro sono degli alias alle
+Le macro sono definite nel file \headfiled{sys/sysmacros.h},\footnote{se si
+ usa la \acr{glibc} dalla versione 2.3.3 queste macro sono degli alias alle
versioni specifiche di questa libreria, \macrod{gnu\_dev\_major},
\macrod{gnu\_dev\_minor} e \macrod{gnu\_dev\_makedev} che si possono usare
direttamente, al costo di una minore portabilità.} che viene automaticamente
tramite il suo file descriptor \param{filedes}.
La struttura \struct{stat} usata da queste funzioni è definita nell'header
-\headfile{sys/stat.h} e in generale dipende dall'implementazione; la versione
+\headfiled{sys/stat.h} e in generale dipende dall'implementazione; la versione
usata da Linux è mostrata in fig.~\ref{fig:file_stat_struct}, così come
riportata dalla pagina di manuale di \func{stat}. In realtà la definizione
effettivamente usata nel kernel dipende dall'architettura e ha altri campi
\textit{inheritable} ed \textit{effective}. Questi insiemi vengono mantenuti
in forma di tre diverse maschere binarie,\footnote{il kernel li mantiene, come
i vari identificatori di sez.~\ref{sec:proc_setuid}, all'interno della
- \struct{task\_struct} di ciascun processo (vedi
+ \texttt{task\_struct} di ciascun processo (vedi
fig.~\ref{fig:proc_task_struct}), nei tre campi \texttt{cap\_effective},
\texttt{cap\_inheritable}, \texttt{cap\_permitted} del tipo
\texttt{kernel\_cap\_t}; questo era, fino al kernel 2.6.25 definito come
indicato che per poterle utilizzare fosse necessario che la macro
\macro{\_POSIX\_SOURCE} risultasse non definita (ed era richiesto di inserire
una istruzione \texttt{\#undef \_POSIX\_SOURCE} prima di includere
-\headfile{sys/capability.h}) requisito che non risulta più
+\headfiled{sys/capability.h}) requisito che non risulta più
presente.\footnote{e non è chiaro neanche quanto sia mai stato davvero
necessario.}
\centering
\begin{minipage}[c]{0.8\textwidth}
\includestruct{listati/cap_user_header_t.h}
- \end{minipage}
+ \end{minipage}
\normalsize
\caption{Definizione delle strutture a cui fanno riferimento i puntatori
\structd{cap\_user\_header\_t} e \structd{cap\_user\_data\_t} usati per