Книга: Основы программирования в Linux
readdir
readdir
Функция readdir
возвращает указатель на структуру, содержащую следующий элемент каталога в потоке каталога dirp
. Успешные вызовы readdir
возвращают следующие элементы каталогов. При возникновении ошибки и в конце каталога readdir
возвращает NULL
. Системы, удовлетворяющие стандарту POSIX, возвращая NULL
, не меняют переменную errno
в случае достижения конца каталога и устанавливают ее значение, если обнаружена ошибка.
#include <sys/types.h>
#include <dirent.h>
struct dirent *readdir(DIR *dirp);
Просмотр каталога с помощью функции readdir
не гарантирует формирование списка всех файлов (и подкаталогов) в каталоге, если в это время выполняются другие процессы, создающие и удаляющие файлы в каталоге.
В состав структуры dirent
, содержащей реквизиты элемента каталога, входят следующие компоненты.
? ino_t d_ino
— индекс файла;
? char d_name[]
— имя файла.
Для выяснения других реквизитов файла в каталоге вам необходимо вызвать stat
, который мы обсуждали ранее.
- Просмотр каталогов
- 8.1.2 Never bet your mortgage on a thread race
- 5.3.1.1. Анализ переносимости
- Упражнения
- seekdir
- Работа с записями
- 1.2.5 Thread safety and reentrancy
- 6.5.2 Directory searching
- 8.6 Пример. Печать каталогов
- Функции, безопасные в многопоточной среде
- Б.6. Чтение содержимого каталога
- Структура файла в Linux