opendir - open a directory
#include <sys/types.h> #include <dirent.h> DIR *opendir(const char *dirname);
The opendir() function opens a directory stream corresponding to the directory named by the dirname argument. The directory stream is positioned at the first entry. If the type DIR, is implemented using a file descriptor, applications will only be able to open up to a total of {OPEN_MAX} files and directories. A successful call to any of the exec functions will close any directory streams that are open in the calling process.
Upon successful completion, opendir() returns a pointer to an object of type DIR. Otherwise, a null pointer is returned and errno is set to indicate the error.
The opendir() function will fail if:
- [EACCES]
- Search permission is denied for the component of the path prefix of dirname or read permission is denied for dirname.
- [ELOOP]
- Too many symbolic links were encountered in resolving path.
- [ENAMETOOLONG]
- The length of the dirname argument exceeds {PATH_MAX}, or a pathname component is longer than {NAME_MAX}.
- [ENOENT]
- A component of dirname does not name an existing directory or dirname is an empty string.
- [ENOTDIR]
- A component of dirname is not a directory.
The opendir() function may fail if:
- [EMFILE]
- {OPEN_MAX} file descriptors are currently open in the calling process.
- [ENAMETOOLONG]
- Pathname resolution of a symbolic link produced an intermediate result whose length exceeds {PATH_MAX}.
- [ENFILE]
- Too many files are currently open in the system.
None.
The opendir() function should be used in conjunction with readdir(), closedir() and rewinddir() to examine the contents of the directory (see the EXAMPLES section in readdir()). This method is recommended for portability.
None.
closedir(), lstat(), readdir(), rewinddir(), symlink(), <dirent.h>, <limits.h>, <sys/types.h>.