|
GETDENTS(2)НАЗВАНИЕ СИНТАКСИС #include <sys/dirent.h> int getdents (fildes, buf, nbyte) int fildes; char *buf; unsigned nbyte; ОПИСАНИЕ Системный вызов getdents(2) пытается прочитать nbyte байт из каталога, ассоциированного с дескриптором fildes, переформатировать их в не зависящие от типа файловой системы элементы каталога и поместить результат в буфер, заданный указателем buf. Так как не зависящие от типа файловой системы элементы каталога имеют переменную длину, в большинстве случаев фактическое число возвращенных байт будет строго меньше, чем nbyte. Не зависящий от типа файловой системы формат элемента каталога задается структурой dirent. Она описана в dirent(4). При работе с устройствами, допускающими позиционирование, чтение начинается с позиции в файле, заданной указателем файла, соответствующего дескриптору fildes. После завершения системного вызова getdents указатель файла получает приращение и указывает на следующий элемент каталога. Данный системный вызов был разработан для реализации функции readdir(3X) [см. directory(3X)]; не следует использовать его для других целей. Системный вызов getdents завершается неудачей, если выполнено хотя бы одно из следующих условий:
СМ. ТАКЖЕ ДИАГНОСТИКА |
|