X-Git-Url: https://gapil.gnulinux.it/gitweb/?a=blobdiff_plain;f=fileunix.tex;h=dad3b0fc0e7d67ff56ced3db6006924a9d774d58;hb=85590332c245e487cff2b566b2df286acc4289ee;hp=674d023449bfebfe54bb405c3d815097c1142f45;hpb=4cbeb0e4fa1d31da798c8e68108eb6785586ab34;p=gapil.git diff --git a/fileunix.tex b/fileunix.tex index 674d023..dad3b0f 100644 --- a/fileunix.tex +++ b/fileunix.tex @@ -40,7 +40,7 @@ tutte le implementazione di un sistema unix-like. Per poter accedere al contenuto di un file occorre creare un canale di comunicazione con il kernel che renda possibile operare su di esso (si ricordi quanto visto in sez.~\ref{sec:file_vfs_work}). Questo si fa aprendo il file -con la funzione \func{open} che provvederà a localizzare \index{inode} l'inode +con la funzione \func{open} che provvederà a localizzare \itindex{inode} l'inode del file e inizializzare i puntatori che rendono disponibili le funzioni che il VFS mette a disposizione (riportate in tab.~\ref{tab:file_file_operations}). Una volta terminate le operazioni, il @@ -83,9 +83,9 @@ informazioni relative al file, fra cui: \item lo stato del file (nel campo \var{f\_flags}). \item il valore della posizione corrente (l'\textit{offset}) nel file (nel campo \var{f\_pos}). -\item un puntatore \index{inode} all'inode\footnote{nel kernel 2.4.x si è in +\item un puntatore \itindex{inode} all'inode\footnote{nel kernel 2.4.x si è in realtà passati ad un puntatore ad una struttura \struct{dentry} che punta - a sua volta \index{inode} all'inode passando per la nuova struttura del + a sua volta \itindex{inode} all'inode passando per la nuova struttura del VFS.} del file. %\item un puntatore alla tabella delle funzioni \footnote{la struttura % \var{f\_op} descritta in sez.~\ref{sec:file_vfs_work}} che si possono usare @@ -142,7 +142,7 @@ tab.~\ref{tab:file_std_files}. \footnotesize \begin{tabular}[c]{|l|l|} \hline - \textbf{Costante} & \textbf{Significato} \\ + \textbf{File} & \textbf{Significato} \\ \hline \hline \const{STDIN\_FILENO} & \textit{file descriptor} dello \textit{standard @@ -162,7 +162,7 @@ In fig.~\ref{fig:file_proc_file} si è rappresentata una situazione diversa, facendo riferimento ad un programma in cui lo \textit{standard input} è associato ad un file mentre lo \textit{standard output} e lo \textit{standard error} sono entrambi associati ad un altro file (e quindi utilizzano lo -stesso \index{inode} inode). +stesso \itindex{inode} inode). Nelle vecchie versioni di Unix (ed anche in Linux fino al kernel 2.0.x) il numero di file aperti era anche soggetto ad un limite massimo dato dalle @@ -844,7 +844,7 @@ situazione come quella illustrata in fig.~\ref{fig:file_mult_acc}: ciascun processo avrà una sua voce nella \textit{file table} referenziata da un diverso file descriptor nella sua \struct{file\_struct}. Entrambe le voci nella \itindex{file~table} \textit{file table} faranno però riferimento allo -stesso \index{inode} inode su disco. +stesso \itindex{inode} inode su disco. Questo significa che ciascun processo avrà la sua posizione corrente sul file, la sua modalità di accesso e versioni proprie di tutte le proprietà che @@ -856,17 +856,17 @@ che: \item ciascun processo può scrivere indipendentemente; dopo ciascuna \func{write} la posizione corrente sarà cambiata solo nel processo. Se la scrittura eccede la dimensione corrente del file questo verrà esteso - automaticamente con l'aggiornamento del campo \var{i\_size} \index{inode} + automaticamente con l'aggiornamento del campo \var{i\_size} \itindex{inode} nell'inode. \item se un file è in modalità \itindex{append~mode} \const{O\_APPEND} tutte le volte che viene effettuata una scrittura la posizione corrente viene - prima impostata alla dimensione corrente del file letta \index{inode} + prima impostata alla dimensione corrente del file letta \itindex{inode} dall'inode. Dopo la scrittura il file viene automaticamente esteso. \item l'effetto di \func{lseek} è solo quello di cambiare il campo \var{f\_pos} nella struttura \struct{file} della \itindex{file~table} \textit{file table}, non c'è nessuna operazione sul file su disco. Quando la si usa per porsi alla fine del file la posizione viene impostata leggendo la - dimensione corrente \index{inode} dall'inode. + dimensione corrente \itindex{inode} dall'inode. \end{itemize} \begin{figure}[!htb] @@ -1019,7 +1019,7 @@ Entrambe le funzioni forzano la sincronizzazione col disco di tutti i dati del file specificato, ed attendono fino alla conclusione delle operazioni; \func{fsync} forza anche la sincronizzazione dei meta-dati del file (che riguardano sia le modifiche alle tabelle di allocazione dei settori, che gli -altri dati contenuti \index{inode} nell'inode che si leggono con \func{fstat}, +altri dati contenuti \itindex{inode} nell'inode che si leggono con \func{fstat}, come i tempi del file). Si tenga presente che questo non comporta la sincronizzazione della @@ -1329,7 +1329,7 @@ il comportamento rispetto a quello ordinario di \func{access}. In questo caso esso può essere specificato come maschera binaria di due valori: \begin{basedescript}{\desclabelwidth{3.0cm}} \item[\const{AT\_EACCESS}] se impostato \funcd{faccessat} esegue il controllo - dei permessi usando l'\textsl{user-ID effettivo} invece di quello reale (il + dei permessi usando l'\acr{uid} effettivo invece di quello reale (il comportamento di default, che riprende quello di \func{access}). \item[\const{AT\_SYMLINK\_NOFOLLOW}] se impostato \funcd{faccessat} non esegue la dereferenziazione dei link simbolici, effettuando il controllo dei