|
DIRECTORY(3X)НАЗВАНИЕ СИНТАКСИС #include <sys/types.h> #include <dirent.h> DIR *opendir (filename) char *filename; struct dirent *readdir (dirp) DIR *dirp; long telldir (dirp) DIR *dirp; void seekdir (dirp, loc) DIR *dirp; long loc; void rewinddir (dirp) DIR *dirp; void closedir (dirp) DIR *dirp; ОПИСАНИЕ Функция readdir выдает указатель на следующий активный элемент каталога. Указатели на неактивные элементы каталога не выдаются. При достижении конца каталога или при выявлении некорректной позиции в каталоге возвращается пустой указатель. Функция telldir выдает текущую позицию в указанном потоке каталога. Функция seekdir устанавливает позицию для последующей операции readdir над потоком каталога. Данная позиция совпадает с той, которая была получена в результате выполнения операции telldir, вычислившей loc. Значения, которые возвращает telldir, корректны только в том случае, если каталог не сжимался и не расширялся. Такая проблема не возникает в случае версии 5, но может возникнуть для некоторых других типов файловых систем. Операция rewinddir переустанавливает в начало позицию в указанном потоке каталога. Операция closedir закрывает указанный поток каталога и освобождает структуру DIR. При выполнении перечисленных операций могут возникнуть следующие ошибки: opendir:
readdir:
telldir, seekdir и closedir:
ПРИМЕР dirp = opendir ("."); while ((dp = readdir (dirp)) != NULL) if (strcmp (dp->d_name, name) == 0) { closedir (dirp); return FOUND; } closedir (dirp); return NOT_FOUND; СМ. ТАКЖЕ ПРЕДОСТЕРЕЖЕНИЯ |
|