This section describes how to open a directory stream. All the symbols are declared in the header file `dirent.h'.
DIR data type represents a directory stream.
You shouldn't ever allocate objects of the struct dirent or DIR data types, since the directory access functions do that for you. Instead, you refer to these objects using the pointers returned by the following functions.
opendir function opens and returns a directory stream for reading the directory whose file name is dirname. The stream has type DIR * .
If unsuccessful, opendir returns a null pointer. In addition to the usual file name syntax errors (see File Name Errors), the following errno error conditions are defined for this function:
EACCES dirname .
EMFILE
ENFILE
The DIR type is typically implemented using a file descriptor, and the opendir function in terms of the open function. See Low-Level I/O. Directory streams and the underlying file descriptors are closed on exec (see Executing a File).