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
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.