La funzione apre un \textit{directory stream} per la 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.
+\textit{directory stream}) da usare per le successive operazioni, posizionando
+lo stream sulla prima voce contenuta nella directory.
-Dato che le directory sono comunque dei file, in alcuni casi può essere utile
-conoscere il \textit{file descriptor} (tratteremo dei \textit{file descriptor}
+Dato che le directory sono comunque dei file, in alcuni casi può servire
+conoscere il \textit{file descriptor} (tratteremo i \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 è:
+stream stesso. A questo scopo si può usare la funzione \funcd{dirfd}, il cui
+prototipo è:
\begin{functions}
\headdecl{sys/types.h} \headdecl{dirent.h}
Legge una voce dal \textit{directory stream}.
\bodydesc{La funzione restituisce il puntatore alla struttura contentente i
- dati in caso di successo e \val{NULL} altrimenti, nel qual caso
- \var{errno} assumerà il valore \errval{EBADF}.}
+ dati in caso di successo e \val{NULL} altrimenti, in caso di descrittore
+ non valido \var{errno} assumerà il valore \errval{EBADF}, il valore
+ \val{NULL} viene restituito anche quando si raggiunge la fine dello
+ stream.}
\end{functions}
-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}.
+La funzione legge la voce corrente nella directory, posizionandosi sulla voce
+successiva. I dati vengono memorizzati in una struttura \struct{dirent} (la
+cui definizione è riportata in \figref{fig:file_dirent_struct}). La funzione
+restituisce il puntatore alla struttura; si tenga presente però che questa
+viene sovrascritta tutte le volte che si ripete una lettura sullo stesso
+stream.
\begin{figure}[!htb]
- \footnotesize
- \centering
+ \footnotesize \centering
\begin{minipage}[c]{15cm}
\begin{lstlisting}[labelstep=0]{}%,frame=,indent=1cm]{}
struct dirent {
+
+
+
Una volta completate le operazioni si può chiudere il \textit{directory
stream} con la funzione \funcd{closedir}, il cui prototipo è:
\begin{functions}