| #include <dirent.h> |
| #include <errno.h> |
| #include <errno.h> |
| #include <stdio.h> |
| #include <stdlib.h> |
| #include <unistd.h> |
| #include <sys/types.h> |
| |
| |
| int |
| main (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; |
| } |