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.
DIR *opendir(const char *dirname);
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.
Available only for UNIX / UNIX based OS.