[C con Clase] Problema con puntero a puntero char
Ariel Romero
aromero en cenatav.co.cu
Jue Oct 18 21:11:29 CEST 2007
Hola a todos:
Soy nuevo en C y quiero hacer una funcion que abra un directorio
determinado y devuelva la lista de ficheros de primer nivel que existen
en él. Esto fue lo que hice:
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <dirent.h>
#include <errno.h>
char** listFilesFromDirectory(char* directory){
DIR *dip;
struct dirent *dit;
int i = 0;
char** filesListFromDirectory;
if ((dip = opendir(directory)) == NULL){
perror("opendir");
return NULL;
}
printf("Directory stream is now open\n");
filesListFromDirectory = malloc(1);
while ((dit = readdir(dip)) != NULL){
filesListFromDirectory[i]= malloc(sizeof(dit->d_name));
strcpy(filesListFromDirectory[i],dit->d_name);
i++;
}
filesListFromDirectory[i]= malloc(1);
filesListFromDirectory[i]="end";
int var;
if (closedir(dip) == -1){
perror("closedir");
return 0;
}
return filesListFromDirectory;
}
despues en el main para probar y listar los ficheros hago esto:
int main(int argc, char **argv) {
char** list; //= malloc(1);
list = listFilesFromDirectory("res");
int var = 0;
while (list[var]!=NULL) {
puts(list[var]);
var++;
}
return EXIT_SUCCESS;
}
Pero no sé que sucede que me da error, alguien sabe como hacerlo bien,
espero que me pueda ayudar.
saludos
Más información sobre la lista de distribución Cconclase