+cui definizione\footnote{la definizione è quella usata a Linux, che si trova
+ nel file \file{/usr/include/bits/dirent.h}, essa non contempla la presenza
+ del campo \var{d\_namlen} che indica la lunghezza del nome del file (ed
+ infatti la macro \macro{\_DIRENT\_HAVE\_D\_NAMLEN} non è definita.} è
+riportata in \figref{fig:file_dirent_struct}). La funzione restituisce il
+puntatore alla struttura; si tenga presente però che quest'ultima è allocata
+staticamente, per cui viene sovrascritta tutte le volte che si ripete una
+lettura sullo stesso stream.
+
+Di questa funzione esiste anche una versione rientrante, \func{readdir\_r} che
+non usa una struttura allocata staticamente, e può essere utilizzata anche con
+i thread; il suo prototipo è:
+\begin{functions}
+ \headdecl{sys/types.h} \headdecl{dirent.h}
+
+ \funcdecl{int readdir\_r(DIR *dir, struct dirent *entry,
+ struct dirent **result)}
+
+ Legge una voce dal \textit{directory stream}.
+
+ \bodydesc{La funzione restituisce 0 in caso di successo e -1 in caso di
+ errore, gli errori sono gli stessi di \func{readdir}.}
+\end{functions}
+
+La funzione restituisce in \param{result} (come \textit{value result
+ argument}) l'indirizzo dove sono stati salvati i dati, che di norma
+corriponde a quallo specificato dall'argomento \param{entry} (anche se non è
+assicurato che la funzione usi lo spazio fornito dall'utente).
+
+I vari campi di \struct{dirent} contengono le informazioni relative alle voci
+presenti nella directory; i soli campi sempre presenti secondo lo standard
+POSIX sono \var{d\_name}, che contiene il nome del file nella forma di una
+stringa terminata da uno zero,\footnote{lo standard POSIX non specifica una
+ lunghezza, ma solo un limite \const{NAME\_MAX}, anche se di norma il valore
+ massimo per un nome è di 256 byte.} e \var{d\_fileno} che contiene il numero
+di inode cui il file è associato (di solito corriponde al campo \var{st\_ino}
+di \struct{stat}); questo campo viene anche chiamato \var{d\_ino}, per
+compatibilità con la definizione usata da BSD.