{La funzione ritorna $0$ in caso di successo e $-1$ per un errore,
nel qual caso \var{errno} assumerà uno dei valori:
\begin{errlist}
- \item[\errcode{BUSY}] \param{target} è la \index{directory~di~lavoro}
+ \item[\errcode{EBUSY}] \param{target} è la \index{directory~di~lavoro}
directory di lavoro di qualche processo, o contiene dei file aperti, o un
altro mount point.
\item[\errcode{EAGAIN}] si è chiamata la funzione con \const{MNT\_EXPIRE}
due, si marca il \itindex{mount~point} \textit{mount point} di un filesystem
non occupato come ``\textsl{in scadenza}'', in tal caso \func{umount2} ritorna
con un errore di \errcode{EAGAIN}, mentre in caso di filesystem occupato si
-sarebbe ricevuto \errcode{BUSY}. Una volta marcato, se nel frattempo non
+sarebbe ricevuto \errcode{EBUSY}. Una volta marcato, se nel frattempo non
viene fatto nessun uso del filesystem, ad una successiva chiamata con
\const{MNT\_EXPIRE} questo verrà smontato. Questo flag consente di realizzare
un meccanismo che smonti automaticamente i filesystem che restano inutilizzati
misura di sicurezza introdotta per evitare, per quei filesystem per il quale è
prevista una gestione diretta da parte degli utenti, come quelli basati su
FUSE,\footnote{il \textit{Filesystem in USEr space} (FUSE) è una delle più
- interessanti applicazioni del VFS che consente, tramite un opportuno modulo,
- di implementare le funzioni del \textit{Virtual File System} in user space,
- così da rendere possibile agli utenti l'implementazione di un loro filesytem
- qualunque (con applicazioni di grande interesse come il filesystem cifrato
- \textit{encfs} o il filesystem di rete \textit{sshfs}).} che si possano
-passare ai programmi che effettuano lo smontaggio dei filesystem, che in
-genere sono privilegiati ma consentono di agire solo sui propri \textit{mount
- point}, dei link simbolici che puntano ad altri \textit{mount point},
-ottenendo così la possibilità di smontare qualunque filesystem.
+ interessanti applicazioni del \itindex{Virtual~File~System} VFS che
+ consente, tramite un opportuno modulo, di implementarne le funzioni in
+ \textit{user space}, così da rendere possibile l'implementazione di un
+ qualunque filesytem (con applicazioni di grande interesse come il filesystem
+ cifrato \textit{encfs} o il filesystem di rete \textit{sshfs}) che possa
+ essere usato direttamente per conto degli utenti.} che si possano passare
+ai programmi che effettuano lo smontaggio dei filesystem, che in genere sono
+privilegiati ma consentono di agire solo sui propri \textit{mount point}, dei
+link simbolici che puntano ad altri \textit{mount point}, ottenendo così la
+possibilità di smontare qualunque filesystem.
Altre due funzioni specifiche di Linux,\footnote{esse si trovano anche su BSD,
\end{figure}
Le \acr{glibc} provvedono infine una serie di funzioni per la gestione dei due
-file \conffile{/etc/fstab} ed \conffile{/etc/mtab}, 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.
+file \conffile{/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.
In generale si dovrebbero usare queste funzioni, in particolare quelle
relative a \conffile{/etc/mtab}, quando si debba scrivere un programma che
aggiornato correttamente (cosa che è impossibile se la radice è montata in
sola lettura) il suo contenuto diventa fuorviante.
-Pe questo motivo il suo utilizzo viene deprecato ed in molti casi viene già
+Per questo motivo il suo utilizzo viene deprecato ed in molti casi viene già
oggi sostituito da un link simbolico a \procfile{/proc/mounts}, che contiene
una versione degli stessi contenuti (vale a dire l'elenco dei filesystem
montati) generata direttamente dal kernel, e quindi sempre disponibile e
sempre aggiornata. Per questo motivo tralasceremo la trattazione, di queste
-funzioni, rimandando al manuale delle \acr{glibc} \cite{glibc} per la
+funzioni, rimandando al manuale delle \acr{glibc} \cite{GlibcMan} per la
documentazione completa.
% TODO (bassa priorità) scrivere delle funzioni (getfsent e getmntent &C)
% TODO (bassa priorità) documentare ? swapon e swapoff (man 2 ...)
+
\section{La gestione di file e directory}
\label{sec:file_dir}