Não sei o porque, mas este código não imprime o nome dos diretórios e arquivos, e também não fecha o diretório aberto... #include<stddef.h>
#include<stdio.h>
#include<sys/types.h>
#include<dirent.h>
void get_files(char *dir, char **content, int *i)
{
DIR *dp;
struct dirent *ep;
dp = opendir(dir);
if(!dp)
{
printf("Error!!!\n");
exit(-1);
}
else
{
while(ep = readdir(dp))
{
content = malloc((*i+1) * sizeof(char *));
content[*i] = calloc(strlen(ep->d_name),sizeof(char));
if(strcmp(ep->d_name,".") != 0 && strcmp(ep->d_name,".."))
{
strcpy(content[*i],ep->d_name);
strcat(content[*i],"");
*i = *i + 1;
}
}
if(!closedir(dp))
{
printf("Can't close the dir.\n");
}
}
}
int main()
{
int i=0,j;
char **files;
get_files(".",files,&i);
for(j=0; j<i; j++) printf("%s\n", files[j]);
return 0;
} Alguém poderia me ajudar? Desde já agradeço. Ass.: RootUser