Структура данных для элементов внутри директории
#include <dirent.h>struct dirent {#if _FILE_OFFSET_BITS - 0 == 64ino_t d_ino; /* File serial number. */off_t d_offset;#elif !defined(_FILE_OFFSET_BITS) || _FILE_OFFSET_BITS == 32#if defined(__LITTLEENDIAN__)ino_t d_ino; /* File serial number. */ino_t d_ino_hi;off_t d_offset;off_t d_offset_hi;#elif defined(__BIGENDIAN__)ino_t d_ino_hi;ino_t d_ino; /* File serial number. */off_t d_offset_hi;off_t d_offset;#else#error endian not configured for system#endif#else#error _FILE_OFFSET_BITS value is unsupported#endif_Int16t d_reclen;_Int16t d_namelen;char d_name[1];};
Структура dirent
описывает элемент в директории. Поля структуры включают:
dirent
элемента). \0
. Структура dirent включает пространство только для первых четырех байт имени файла. При создании экземпляра этой структуры данное обстоятельство следует учитывать и обеспечить достаточное количество памяти для имени, включая завершающий нуль-терминатор:
или:
|
POSIX 1003.1
readdir(), readdir_r(), scandir()
Предыдущий раздел: Описание API системной библиотеки