Q:

C Segmentation Fault:11

I'm getting segmentation fault:11 when the arguments introduced lead to this part of the code being used:  
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);
}

I can post the entire code or any additional explanations you deem necessary. I appreciate any input you care too offer.

A:

I think if directoria is NULL you will still execute closedir (directoria); which will dereference the null pointer and cause the segfault.

