| 12345678910111213141516171819202122232425262728293031323334353637 | #include <dirent.h>#include <errno.h>#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <sys/types.h>intmain (void){  DIR *dirp;  struct dirent* ent;  /* open a dir stream */  dirp = opendir ("/tmp");  if (dirp == NULL)    {      if (errno == ENOENT)	exit (0);      perror ("opendir");      exit (1);    }  /* close the directory file descriptor, making it invalid */  if (close (dirfd (dirp)) != 0)    {      puts ("could not close directory file descriptor");      /* This is not an error.  It is not guaranteed this is possible.  */      return 0;    }  ent = readdir (dirp);  return ent != NULL || errno != EBADF;}
 |