/* Esercizio1 (obbligatorio): (20 punti) Usando le chiamate opendir, readdir, closedir, qsort realizzare un programma in */
/* linguaggio C che metta in output la lista dei file della directory corrente in ordine alfabetico inverso. */
/* (l'output deve essere equivalente a quello del comando “ls . | sort -r”). */
static int compare(const void * a, const void * b)
return strcmp(* (char * const *) a, * (char * const *) b);
int main(int argc, char* argv[])
/* La struttura dirent vale per un singolo file e non per tutto il contenuto della cartella */
struct dirent allFiles[1024];
char *stringhe[1024][255];
/* Il tipo DIR vale per una singola directory */
/* Apre la directory corrente */
if((dd = opendir(".")) == NULL)
while(curDir = readdir(dd))
/* Memorizza tutti i file presenti */
if(curDir->d_type == DT_REG)
allFiles[count] = *curDir;
/* Stampa i file in ordine di lettura */
printf("%s\n", allFiles[i].d_name);
/* Salva i nomi in una matrice di stringhe */
stringhe[i][0] = allFiles[i].d_name;
qsort(stringhe[1], count, sizeof(char *), compare);
printf("%s\n", allFiles[i].d_name);
if((ris = closedir(dd)) == -1)