X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=filedir.tex;h=3aae3d7986a96f74f1ccebec0a020b31d092cb81;hp=f11da2ccbf9973efad0eb9c85bc2c4e626c5a92c;hb=ee800a27585aeed2f753222dc5ff56fe0bcfb6e0;hpb=5c276f48d2b22a017614dddf8afe47f91af6f628 diff --git a/filedir.tex b/filedir.tex index f11da2c..3aae3d7 100644 --- a/filedir.tex +++ b/filedir.tex @@ -1117,7 +1117,7 @@ filesystem anche quando questo risulti occupato; il suo prototipo è: {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} @@ -1179,7 +1179,7 @@ Con \const{MNT\_EXPIRE}, che non può essere specificato insieme agli altri 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 @@ -1190,15 +1190,16 @@ questo è un link simbolico (vedi sez.~\ref{sec:file_symlink}). Questa è una 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, @@ -1245,12 +1246,16 @@ del filesystem stesso. \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 @@ -1260,17 +1265,18 @@ di \conffile{/etc/mtab} è considerato una pratica obsoleta, in quanto se non 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}