2013-12-09 5 views
0

Я получаю ошибка сегментации: 11, когда аргументы, введенные приводят к этой части коды используются:C Сегментация Fault: 11

else 
{ 
    directoria = opendir (argv[2]); 
    if (directoria == NULL) 
    { 
     printf ("Não foi possível abrir a directoria '%s' ou esta não contém ficheiros.\n", argv[2]); 
    } 
    else 
    { 
     while ((ficheiro = readdir (directoria)) != NULL) 
    { 
     sprintf(guardar, "%s/%s", argv[2], ficheiro->d_name); 
     stat (guardar, &dados); 
     printf ("%7d", dados.st_size); 
     tempbon = dados.st_mtime; 
     t = localtime (&tempbon); 
     strftime(tempo, 80, "%b %d %H:%M", t); 
     printf (" %s", tempo); 
     printf (" %s\n", ficheiro -> d_name); 
    } 
    } 
    closedir (directoria); 
} 

я могу отправить весь код или какие-либо дополнительные объяснения вы сочтете необходимыми , Я ценю любой вклад, который вам тоже нравится.

ответ

1

Я думаю, что если directoria NULL, вы все равно выполняете closedir (directoria);, который будет разыменовывать нулевой указатель и вызывать segfault.

+0

Да, это сделал трюк. Спасибо! – FranciscoS

+0

Рад это слышать! Пожалуйста! – qwwqwwq

Смежные вопросы