X-Git-Url: https://gapil.gnulinux.it/gitweb/?a=blobdiff_plain;f=fileunix.tex;h=c9712a72596999162df4bee2068b1a8a2c8da3d3;hb=339b308be75820bb04f49e64327f9edb9bbe1a7f;hp=f0534ed9ba21ae5c311e2bd42a521eff401a29db;hpb=6ca77550fb420b3948b95a60ff79f7e282c12d34;p=gapil.git diff --git a/fileunix.tex b/fileunix.tex index f0534ed..c9712a7 100644 --- a/fileunix.tex +++ b/fileunix.tex @@ -1,6 +1,6 @@ %% fileunix.tex %% -%% Copyright (C) 2000-2007 Simone Piccardi. Permission is granted to +%% Copyright (C) 2000-2009 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", @@ -381,9 +381,10 @@ ritorno il file descriptor con il valore pi anche in FreeBSD, senza limiti di allineamento dei buffer. In Linux è stata introdotta con il kernel 2.4.10, le versioni precedenti la ignorano.} -\footnotetext[7]{introdotto con il kernel 2.6.23, per evitare una \textit{race - condition} che si può verificare con i thread, fra l'apertura del file e - l'impostazione della suddetta modalità con \func{fcntl}.} +\footnotetext[7]{introdotto con il kernel 2.6.23, per evitare una + \itindex{race~condition} \textit{race condition} che si può verificare con i + \itindex{thread} \textit{thread}, fra l'apertura del file e l'impostazione + della suddetta modalità con \func{fcntl}.} Questa caratteristica permette di prevedere qual è il valore del file descriptor che si otterrà al ritorno di \func{open}, e viene talvolta usata da @@ -1072,9 +1073,10 @@ parallelo alla chiamata a \func{open}, e questo lascia aperta la possibilit di una \itindex{race~condition} \textit{race condition}. Inoltre come già accennato, la directory di lavoro corrente è una proprietà -del singolo processo; questo significa che quando si lavora con i thread essa -sarà la stessa per tutti, ma esistono molti casi in cui sarebbe invece utile -che ogni singolo thread avesse la sua directory di lavoro. +del singolo processo; questo significa che quando si lavora con i +\itindex{thread} \textit{thread} essa sarà la stessa per tutti, ma esistono +molti casi in cui sarebbe invece utile che ogni singolo \itindex{thread} +\textit{thread} avesse la sua directory di lavoro. Per risolvere questi problemi, riprendendo una interfaccia già presente in Solaris, a fianco delle normali funzioni che operano sui file (come @@ -1097,13 +1099,13 @@ stesso. L'idea è che si apra prima la directory che si vuole usare come base dei pathname relativo, e si passi il file descriptor alla funzione che userà quella directory come punto di partenza per la risoluzione.\footnote{in questo - modo, anche quando si lavora con i thread, si può mantenere anche una - directory di lavoro diversa per ciascuno di essi.} Con queste funzioni si -possono anche ottenere grossi aumenti di prestazioni quando si devono eseguire -operazioni su delle sezioni di albero dei file che prevedono gerarchie molto -profonde e grandi quantità di file e directory, dato che basta eseguire la -risoluzione di un pathname una sola volta (nell'apertura della directory) e -non per ciascun file che essa contiene. + modo, anche quando si lavora con i \itindex{thread} \textit{thread}, si può + mantenere anche una directory di lavoro diversa per ciascuno di essi.} Con +queste funzioni si possono anche ottenere grossi aumenti di prestazioni quando +si devono eseguire operazioni su delle sezioni di albero dei file che +prevedono gerarchie molto profonde e grandi quantità di file e directory, dato +che basta eseguire la risoluzione di un pathname una sola volta (nell'apertura +della directory) e non per ciascun file che essa contiene. La sintassi generale di queste nuove funzioni è che esse prendano come primo argomento il file descriptor della directory da usare come base, mentre gli @@ -1138,15 +1140,15 @@ l'argomento \param{dirfd}.\footnote{non staremo pertanto a riportarli uno per \begin{table}[htb] \centering \footnotesize - \begin{tabular}[c]{|l|l|} + \begin{tabular}[c]{|l|c|l|} \hline - \textbf{Funzione} & \textbf{Corrispondente} \\ + \textbf{Funzione} &\textbf{Flags} \textbf{Corrispondente} \\ \hline \hline - \func{faccessat} &\func{access} \\ - \func{fchmodat} &\func{chmod} \\ - \func{fchownat} &\func{chown} \\ - \func{fstatat} &\func{stat} \\ + \func{faccessat} & -- &\func{access} \\ + \func{fchmodat} &$\bullet$\func{chmod} \\ + \func{fchownat} &\func{chown},\func{lchown} \\ + \func{fstatat} &\func{stat},\func{lstat} \\ \func{futimesat} &\func{utimes} \\ \func{linkat} &\func{link} \\ \func{mkdirat} &\func{mkdir} \\