ProvaPratica 2010.02.03
Revision as of 14:57, 28 April 2014 by Stefano 92 (talk | contribs) (Created page with "<h1>http://www.cs.unibo.it/~renzo/so/compiti/2010-02-03.pdf</h1> == Esercizio 1 == <syntaxhighlight lang="C"> #include <stdio.h> #include <sys/types.h> #include <dirent.h>...")
http://www.cs.unibo.it/~renzo/so/compiti/2010-02-03.pdf
Esercizio 1
#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <sys/stat.h>
int N_DIR1=0;
void print_reverse(char**ptr)
{
int i=0;
for(i=N_DIR1-1;i>-1;i--)
printf("%s\n",ptr[i]);
}
int main ()
{
int ris,i=0;
char c;
char*tmp;
struct stat prova;
char**filedir1=NULL;
DIR *dp;
struct dirent *ep;
/*APERTURA DIRECTORY 1*/
dp = opendir (".");
if (dp != NULL)
{
while ((ep = readdir (dp))) /*Leggo i file nella directory*/
{
ris=lstat(ep->d_name,&prova); /*Recupero le informazioni sul file*/
if (S_ISREG(prova.st_mode)) /*file regolare*/
{
/*IL FILE E' UN ESEGUIBILE REGOLARE*/
N_DIR1++;
filedir1=(char**)realloc(filedir1,N_DIR1*sizeof(char*));
filedir1[N_DIR1-1]=ep->d_name;
}
}
closedir (dp); /*ORA IN filedir1[] CI SONO TUTTI I FILE DELLA DIRECTORY 1*/
}
print_reverse(filedir1);
return(0);
}
-stefano92
nota: non ho usato la qsort, ma ho semplicemente utilizzato il fatto che readdir() restituisce il contenuto in ordine alfabetico. E' corretto?