READDIR(2)

NAZWA
readdir - odczytanie wpisu w katalogu

SKŁADNIA
#include <sys/syscall.h>           /* Definicja stałych SYS_* */
#include <unistd.h>

int syscall(SYS_readdir, unsigned int fd,
            struct old_linux_dirent *dirp, unsigned int count);

Note: There is no definition of struct old_linux_dirent; see NOTES.

OPIS
Nie jest to funkcja, która cię interesuje. Opis implementacji interfejsu zgodnego z POSIX w bibliotece C znajduje się w readdir(3). Niniejsza strona opisuje goły interfejs wywołania systemowego, który został zastąpiony przez getdents(2).

readdir() reads one old_linux_dirent structure from the directory referred to by the file descriptor fd into the buffer pointed to by dirp. The argument count is ignored; at most one old_linux_dirent structure is read.

The old_linux_dirent structure is declared (privately in Linux kernel file fs/readdir.c) as follows:

    struct old_linux_dirent {
        unsigned long d_ino;     /* numer i-węzła */
        unsigned long d_offset;  /* offset do tego old_linux_dirent */
        unsigned short d_namlen; /* długość tego d_name */
        char  d_name[1];         /* nazwa pliku (zakończona znakiem NUL) */
    }

d_ino jest numerem i-węzła. d_off jest odległością od początku katalogu do tego wpisu old_linux_dirent. d_reclen jest rozmiarem d_name, nie licząc kończącego znaku NUL. d_name jest zakończoną znakiem NUL nazwą pliku.

WARTOŚĆ ZWRACANA
On success, 1 is returned. On end of directory, 0 is returned. On error, -1 is returned, and errno is set to indicate the error.

BŁĘDY

EBADF
    Nieprawidłowy deskryptor fd.

EFAULT
    Argument wskazuje poza przestrzeń adresową wywołującego procesu.

EINVAL
    Bufor na wynik jest za mały.

ENOENT
    Nie ma takiego katalogu.

ENOTDIR
    Deksryptor pliku nie odnosi się do katalogu.

ZGODNE Z
Tp wywołanie systemowe jest specyficzne dla Linuksa.

UWAGI
You will need to define the old_linux_dirent structure yourself. However, probably you should use readdir(3) instead.

This system call does not exist on x86-64.

ZOBACZ TAKŻE
getdents(2), readdir(3)

O STRONIE
Angielska wersja tej strony pochodzi z wydania 5.13 projektu Linux man-pages. Opis projektu, informacje dotyczące zgłaszania błędów oraz najnowszą wersję oryginału można znaleźć pod adresem https://www.kernel.org/doc/man-pages/.

TŁUMACZENIE
Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Przemek Borys <pborys@dione.ids.pl> i Andrzej Krzysztofowicz <ankry@green.mf.pg.gda.pl>

Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 (https://www.gnu.org/licenses/gpl-3.0.html) lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.

Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej manpages-pl-list@lists.sourceforge.net.