X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=filedir.tex;h=5b3b0b51fba8491109cb45ddca066d348e5fa48b;hp=84b01947ef95859750c150fc36d8508a4f81c523;hb=613d2f30d1c3ec28c569578a7b7bab23a40e8fea;hpb=d6de060b2497ec17ae8a21ea458f8c2581b5d431 diff --git a/filedir.tex b/filedir.tex index 84b0194..5b3b0b5 100644 --- a/filedir.tex +++ b/filedir.tex @@ -642,9 +642,11 @@ Per creare una fifo (un file speciale, su cui torneremo in dettaglio in \errval{EEXIST}, \errval{ENAMETOOLONG}, \errval{ENOENT}, \errval{ENOSPC}, \errval{ENOTDIR} e \errval{EROFS}.} \end{functions} -\noindent come per \func{mknod} il file \param{pathname} non deve esistere -(neanche come link simbolico); al solito i permessi specificati da -\param{mode} vengono modificati dal valore di \var{umask}. + +La funzione crea la fifo \param{pathname} con i permessi \param{mode}. Come +per \func{mknod} il file \param{pathname} non deve esistere (neanche come link +simbolico); al solito i permessi specificati da \param{mode} vengono +modificati dal valore di \var{umask}. @@ -659,11 +661,11 @@ file usando le apposite funzioni. Pu contenuto di una directory, ad esempio per fare la lista dei file che contiene o per delle ricerche. -Per far questo nello standard POSIX\footnote{le funzioni sono previste pure in +Per far questo lo standard POSIX\footnote{le funzioni sono previste pure in BSD e SVID.} ha introdotto i cosiddetti \textit{directory streams} (chiamati così per l'analogia con i file stream di \capref{cha:files_std_interface}) ed -alcune di funzioni per la loro gestione. La prima di queste è \funcd{opendir}, -che apre uno di questi stream, il suo prototipo è: +una serie di funzioni per la loro gestione. La prima di queste è +\funcd{opendir}, il cui prototipo è: \begin{functions} \headdecl{sys/types.h} \headdecl{dirent.h} @@ -678,13 +680,15 @@ che apre uno di questi stream, il suo prototipo \end{functions} La funzione apre un \textit{directory stream} per la directory -\param{dirname}, ritornando il puntatore alla relativa struttura \ctyp{DIR} da -usare per le successive operazioni, si posiziona inoltre sulla prima voce -della directory. +\param{dirname}, ritornando il puntatore alla relativa struttura \type{DIR} +(questo è un tipo opaco\index{tipo!opaco} usato dalle librerie per gestire i +\textit{directory stream}) da usare per le successive operazioni, infine +posiziona lo stream sulla prima voce contenuta nella directory. Dato che le directory sono comunque dei file, in alcuni casi può essere utile -conoscere il file descriptor sottostante un \textit{directory stream}, ad -esempio per utilizzarlo con la funzione \func{fchdir} per cambiare la +conoscere il \textit{file descriptor} (tratteremo dei \textit{file descriptor} +in \capref{cha:file_unix_interface}) sottostante un \textit{directory stream}, +ad esempio per utilizzarlo con la funzione \func{fchdir} per cambiare la directory di lavoro (vedi \secref{sec:file_work_dir}) a quella relativa allo stream che si è aperto. A questo scopo si può usare la funzione \funcd{dirfd}, il cui prototipo è: @@ -719,10 +723,14 @@ La lettura di una voce nella directory viene effettuata attraverso la funzione \var{errno} assumerà il valore \errval{EBADF}.} \end{functions} -La funzione legge una voce dalla directory (una \textit{directory entry}, da -distinguersi da quelle della cache di cui parlavamo in \secref{sec:file_vfs}) -in un'opportuna struttura \struct{dirent} definita in -\figref{fig:file_dirent_struct}, il suo pro +La funzione legge una voce dalla directory \textit{directory + entry},\footnote{anche questa viene chiamata anche se non ha nulla a che + fare con le omonime \textit{directory entry} di cui parlavamo in + \secref{sec:file_vfs}).} in un'opportuna struttura \struct{dirent}, la cui +definizione è riportata in \figref{fig:file_dirent_struct}, che contiene i +dati relativi al file cui la voce fa riferimento. Si tenga presente che la +struttura viene sovrascritta tutte le volte che si ripete una lettura sullo +stesso \textit{directory stream}. \begin{figure}[!htb] \footnotesize