Прототип функции
#include <sys/types.h>
#include <dirent.h>
struct dirent *readdir(DIR *dir);
Описание функции
Функция readdir служит для чтения очередной записи из потока информации для директории.
Параметр dir представляет собой указатель на структуру, описывающую поток директории, который вернула функция opendir().
Тип данных struct dirent представляет собой некоторую структуру данных, описывающую одну запись в директории. Поля этой записи сильно варьируются от одной файловой системы к другой, но одно из полей, которое собственно и будет нас интересовать, всегда присутствует в ней. Это поле char d_name[ ] неопределенной длины, не превышающей значения NAME_MAX+1, которое содержит символьное имя файла, завершающееся символом конца строки. Данные, возвращаемые функцией readdir, переписываются при очередном вызове этой функции для того же самого потока директории.
При удачном завершении функция возвращает указатель на структуру, содержащую очередную запись директории. При неудачном завершении или при достижении конца директории возвращается значение NULL.