2013-12-09 95 views
0

我收到分段错误:11时使用引入导致了这部分代码的参数:Ç段错误: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);这将解引用空指针并导致段错误。

+0

是的,这是诀窍。谢谢! – FranciscoS

+0

很高兴听到它!别客气! – qwwqwwq