NAZWA

readdir - odczytanie wpisu w katalogu

BIBLIOTEKA

Standardowa biblioteka C ( libc, -lc)

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 ('\0'). 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.

STANDARDY

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)

TŁUMACZENIE

Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Przemek Borys <[email protected]> i Andrzej Krzysztofowicz <[email protected]>
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 lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.
Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej [email protected]

Recommended readings

Pages related to readdir you should read also: