readdir(2) System Calls Manual readdir(2)

readdir - citește intrările de directoare

Biblioteca C standard (libc, -lc)

#include <sys/syscall.h>      /* Definirea constantelor SYS_* */
#include <unistd.h>
int syscall(SYS_readdir, unsigned int fd,
            struct old_linux_dirent *dirp, unsigned int count);

Notă: Nu există o definiție a struct old_linux_dirent; a se vedea NOTE.

Nu aceasta este funcția care vă interesează. Consultați readdir(3) pentru interfața bibliotecii C conformă cu POSIX. Această pagină documentează interfața simplă de apel de sistem a nucleului, care este înlocuită de getdents(2).

readdir() citește o structură old_linux_dirent din directorul la care se face referire prin descriptorul de fișier fd în memoria tampon indicată de dirp. Argumentul count este ignorat; se citește cel mult o structură old_linux_dirent.

Structura old_linux_dirent este declarată (în mod privat în fișierul fs/readdir.c al nucleului Linux) după cum urmează:


struct old_linux_dirent {
    unsigned long d_ino;     /* numărul nodului-i */
    unsigned long d_offset;  /* intervalul acestui old_linux_dirent */
    unsigned short d_namlen; /* lungimea acestui d_name */
    char  d_name[1];         /* numele fișierului (cu terminație nulă) */
}

d_ino este un număr de nod-i. d_offset este distanța de la începutul directorului până la acest old_linux_dirent. d_reclen este dimensiunea lui d_nume, fără a lua în considerare octetul nul de terminare („\0”). d_name este un nume de fișier cu terminație nulă.

În caz de succes, se returnează 1. La sfârșitul directorului, se returnează 0. În caz de eroare, se returnează -1, iar errno este configurată pentru a indica eroarea.

Descriptor de fișier nevalid fd.
Argumentul indică puncte în afara spațiului de adrese al procesului apelant.
Memoria tampon de rezultate este prea mică.
Nu există un astfel de director.
Descriptorul de fișier nu se referă la un director.

Va trebui să definiți singur structura old_linux_dirent. Cu toate acestea, probabil că ar trebui să folosiți readdir(3) în schimb.

Acest apel de sistem nu există pentru arhitectura x86_64.

Linux.

getdents(2), readdir(3)

Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.

31 octombrie 2023 Pagini de manual de Linux 6.06