Al solito, per la presenza fra gli argomenti di due puntatori a funzione, il
prototipo non è molto comprensibile; queste funzioni però sono quelle che
-controllano rispettivamente la selezione di una voce (\param{select}) e
-l'ordinamento di tutte le voci selezionate (\param{compar}).
+controllano rispettivamente la selezione di una voce (quella passata con
+l'argomento \param{select}) e l'ordinamento di tutte le voci selezionate
+(quella specificata dell'argomento \param{compar}).
La funzione legge tutte le voci della directory indicata dall'argomento
-\param{dir}, passando ciascuna di esse come argomento alla funzione di
-\param{select}; se questa ritorna un valore diverso da zero la voce viene
-inserita in una struttura allocata dinamicamente con \func{malloc}, qualora si
-specifichi un valore \val{NULL} per \func{select} vengono selezionate tutte le
-voci. Tutte le voci selezionate vengono poi inserite un una lista (anch'essa
-allocata con \func{malloc}, che viene riordinata tramite \func{qsort} usando
-la funzione \param{compar} come criterio di ordinamento; alla fine l'indirizzo
-della lista ordinata è restituito nell'argomento \param{namelist}.
-
-Per l'ordinamento sono disponibili anche due funzioni predefinite,
+\param{dir}, passando ciascuna di esse (una struttura \struct{dirent}) come
+argomento della funzione di selezione specificata da \param{select}; se questa
+ritorna un valore diverso da zero la voce viene inserita in un vettore che
+viene allocato dinamicamente con \func{malloc}. Qualora si specifichi un
+valore \val{NULL} per \func{select} vengono selezionate tutte le voci.
+
+Le voci selezionate possono essere riodinate tramite \func{qsort}, le modalità
+del riordinamento possono essere personalizzate usando la funzione
+\param{compar} come criterio di ordinamento di\func{qsort}, la funzione prende
+come argomenti le duestrutture \struct{dirent} da confrontare restituendo un
+valore positivo, nullo o negativo per indicarne l'ordinamento; alla fine
+l'indirizzo della lista delle strutture \struct{dirent} così ordinate viene
+restituito nell'argomento \param{namelist}.
+
+Per l'ordinamento (vale a dire come valori possibili per l'argomento
+\param{compar}) sono disponibili anche due funzioni predefinite,
\funcd{alphasort} e \funcd{versionsort}, i cui prototipi sono:
\begin{functions}
\headdecl{dirent.h}
Un semplice esempio dell'uso di queste funzioni è riportato in
fig.~\ref{fig:file_my_ls}, dove si è riportata la sezione principale di un
-programma che, usando la routine di scansione illustrata in
+programma che, usando la funzione di scansione illustrata in
fig.~\ref{fig:file_dirscan}, stampa i nomi dei file contenuti in una directory
e la relativa dimensione (in sostanza una versione semplificata del comando
\cmd{ls}).
\begin{minipage}[c]{15.6cm}
\includecodesample{listati/DirScan.c}
\end{minipage}
- \caption{Codice della routine di scansione di una directory contenuta nel
+ \caption{Codice della funzione di scansione di una directory contenuta nel
file \file{DirScan.c}.}
\label{fig:file_dirscan}
\end{figure}