The readdir() function returns a pointer to a dirent structure representing the next directory entry in the directory stream pointed to by dir. It returns NULL on reaching the end-of-file or if an error occurred.
According to POSIX, the dirent structure contains a field "char d_name" of unspecified size, with at most NAME_MAX characters preceding the terminating null character. Use of other fields will harm the portability of your programs. POSIX 1003.1-2001 also documents the field "ino_t d_ino" as an XSI extension.
The data returned by readdir() may be overwritten by subsequent calls to readdir() for the same directory stream.
The readdir() function returns a pointer to a dirent structure, or NULL if an error occurs or end-of-file is reached.