Estoy aceptando la ruta a través de la entrada de la línea de comandos.Abra el directorio usando C
Cuando hago
dir=opendir(args[1]);
it doesnt enter the loop...i.e dir==null...
¿Cómo pasar la entrada de línea de comandos para dir puntero ???
void main(int c,char **args)
{
DIR *dir;
struct dirent *dent;
char buffer[50];
strcpy(buffer, args[1]);
dir = opendir(buffer); //this part
if(dir!=NULL)
{
while((dent=readdir(dir))!=NULL)
printf(dent->d_name);
}
close(dir);
}
./a.out /root/TEST is used to run the program..
./a.out --> to execute the program
/root/TEST --> input by the user i.e valid path
Proporcione la parte correspondiente de su código. Tu pregunta no está clara, al menos para mí. 'opendir' devuelve un' DIR * '. Devuelve NULL en 2 situaciones: no se pudo acceder al directorio o no se pudo asignar memoria para contener el resultado. – jweyrich
@Vinod K: ¿Cómo está ejecutando este código/qué línea de comando está utilizando para ejecutarlo? – Thanatos
@Vinod: Imprime args [1] y comprueba manualmente si existe. 1) ¿Existe? 2) ¿Su ruta encaja en 50 bytes (debe usar strncpy)? 3) ¿Qué sucede si no pasas el parámetro? Agregue las condiciones adecuadas allí. – jweyrich