mark.zlatoust.ru Послать письмо Webmaster-у Web-Master © Бернадинер Марк 

Златоуст.Ru

 

 

GETDENTS(2)                                         GETDENTS(2)

НАЗВАНИЕ 
        getdents - чтение элементов каталога и преобразование в
        системно-независимый формат

СИНТАКСИС 
        #include 

        int getdents (fildes, buf, nbyte)
        int fildes;
        char *buf;
        unsigned nbyte;

ОПИСАНИЕ 
        Аргумент fildes - это дескриптор файла,  полученный  от
        системного вызова open(2) или dup(2).

        Системный вызов getdents(2)  пытается  прочитать  nbyte
        байт  из  каталога,  ассоциированного  с   дескриптором
        fildes, переформатировать их в  не  зависящие  от  типа
        файловой системы элементы каталога и поместить  резуль-
        тат в буфер, заданный указателем buf. Так как не  зави-
        сящие  от типа файловой системы элементы каталога имеют
        переменную длину,  в  большинстве  случаев  фактическое
        число возвращенных байт будет строго меньше, чем nbyte.

        Не зависящий от типа файловой системы  формат  элемента
        каталога задается  структурой  dirent.  Она  описана  в
        dirent(4).

        При  работе с устройствами, допускающими позиционирова-
        ние, чтение начинается с позиции в файле, заданной ука-
        зателем  файла,  соответствующего  дескриптору  fildes.
        После  завершения  системного вызова getdents указатель
        файла получает приращение и указывает на следующий эле-
        мент каталога.

        Данный системный вызов был  разработан  для  реализации
        функции readdir(3X) [см. directory(3X)]; не следует ис-
        пользовать его для других целей.

        Системный вызов getdents завершается неудачей, если вы-
        полнено хотя бы одно из следующих условий:

        [EBADF]     Аргумент   fildes  не  является  корректным
                    дескриптором файла, открытого на чтение.

        [EFAULT]    Аргумент  buf указывает за пределы отведен-
                    ного процессу адресного пространства.

        [EINVAL]    Значение аргумента nbyte меньше длины одно-
                    го элемента каталога.

        [ENOENT]    Текущий указатель файла для каталога  уста-
                    новлен не на корректный элемент.

        [ENOLINK]   Аргумент  fildes  указывает  на   удаленный
                    компьютер,  связи с которым в данный момент
                    нет.

        [ENOTDIR]   Дескриптор fildes ассоциирован не с катало-
                    гом.

        [EIO]       Во время доступа к файловой  системе  прои-
                    зошла ошибка ввода/вывода.

СМ. ТАКЖЕ 
        directory(3X), dirent(4).

ДИАГНОСТИКА 
        При успешном  завершении  возвращается  неотрицательное
        целое  число,  равное количеству фактически прочитанных
        байт. Значение 0 обозначает, что  был  достигнут  конец
        каталога. В случае ошибки возвращается -1, а переменной
        errno присваивается код ошибки.



 

 

Бернадинер Марк Абрамович

Мое резюме

Компьютерная страничка

Ресурсы сети

Фотоальбом

 

 

 

mark.zlatoust.ru Послать письмо Webmaster-у Web-Master © Бернадинер Марк