X-Git-Url: https://gapil.gnulinux.it/gitweb/?a=blobdiff_plain;f=filedir.tex;h=9a9ed69a747ce1039ea27972d0c31aeff7b121af;hb=83b2cb23f7f2026b0d487f9d9461c25d39d7031c;hp=ffd263bc70cbb3c5bc3066bc17cf7b407c71cf75;hpb=29b7512f9179b716d031c978cd39dc96cd84b8b7;p=gapil.git diff --git a/filedir.tex b/filedir.tex index ffd263b..9a9ed69 100644 --- a/filedir.tex +++ b/filedir.tex @@ -909,20 +909,27 @@ ed ordinamento) del contenuto di una directory; la funzione 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}