Provided by: manpages-ro-dev_4.27.0-1_all bug

NUME

       readdir_r - citește un director

BIBLIOTECA

       Biblioteca C standard (libc, -lc)

SINOPSIS

       #include <dirent.h>

       [[depreciat]] int readdir_r(DIR *restrict dirp,
                                    struct dirent *restrict entry,
                                    struct dirent **restrict result);

   Cerințe pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultați feature_test_macros(7)):

       readdir_r():
           _POSIX_C_SOURCE
               || /* glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE

DESCRIERE

       Această funcție este depășită; utilizați în schimb readdir(3).

       Funcția  readdir_r()  a fost inventată ca o versiune reentrantă a readdir(3).  Aceasta citește următoarea
       intrare de director din fluxul de directoare dirp și o returnează în memoria tampon alocată  de  apelant,
       indicată de entry.  Pentru detalii privind structura dirent, a se vedea readdir(3).

       Un  indicator la memoria tampon returnată este plasat în *result; dacă a fost întâlnit sfârșitul fluxului
       de directoare, atunci NULL este returnat în *result.

       Se recomandă ca aplicațiile să utilizeze readdir(3) în loc de readdir_r().  În plus,  începând  cu  glibc
       2.24, glibc depreciază readdir_r().  Motivele sunt următoarele:

       •  În  sistemele  în  care  NAME_MAX  este  nedefinit,  apelarea  readdir_r() poate fi nesigură, deoarece
          interfața nu permite apelantului să specifice lungimea memoriei tampon utilizate  pentru  intrarea  de
          director returnată.

       •  Pe unele sisteme, readdir_r() nu poate citi intrările de directoare cu nume foarte lungi.  Atunci când
          implementarea  glibc întâlnește un astfel de nume, readdir_r() eșuează cu eroarea ENAMETOOLONG după ce
          a fost citită ultima intrare de director.  Pe alte sisteme,  readdir_r()  poate  returna  o  stare  de
          succes, dar câmpul d_name returnat poate să nu fie terminat la zero sau poate fi trunchiat.

       •  În specificația POSIX.1 actuală (POSIX.1-2008), readdir(3) nu este necesar să fie sigur pentru fire de
          execuție.   Cu  toate  acestea, în implementările moderne (inclusiv în implementarea glibc), apelurile
          simultane la readdir(3) care specifică fluxuri de directoare diferite sunt sigure pentru  fire.   Prin
          urmare,  utilizarea lui readdir_r() nu este, în general, necesară în programele cu mai multe fire.  În
          cazurile în care mai multe fire de execuție trebuie  să  citească  din  același  flux  de  directoare,
          utilizarea  readdir(3)  cu sincronizare externă este în continuare preferabilă utilizării readdir_r(),
          din motivele prezentate la punctele de mai sus.

       •  Se preconizează că o versiune viitoare a POSIX.1 va face ca  readdir_r()  să  devină  învechit  și  va
          impune  ca  readdir(3)  să  fie  sigur pentru firele de execuție atunci când este utilizat simultan pe
          diferite fluxuri de directoare.

VALOAREA RETURNATĂ

       Funcția readdir_r() returnează 0 în caz de succes.  În caz de eroare, aceasta returnează un număr pozitiv
       de eroare (enumerat la rubrica ERRORI).  Dacă se ajunge la sfârșitul fluxului de directoare,  readdir_r()
       returnează 0 și returnează NULL în *result.

ERORI-IEȘIRE

       EBADF  Descriptor de flux de director nevalid dirp.

       ENAMETOOLONG
              A fost întâlnită o intrare de director al cărei nume era prea lung pentru a fi citit.

ATRIBUTE

       Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).
       ┌─────────────────────────────────────────────────────────────────────────┬───────────────────┬─────────┐
       │ InterfațăAtributValoare │
       ├─────────────────────────────────────────────────────────────────────────┼───────────────────┼─────────┤
       │ readdir_r()                                                             │ Siguranța firelor │ MT-Safe │
       └─────────────────────────────────────────────────────────────────────────┴───────────────────┴─────────┘

STANDARDE

       POSIX.1-2008.

ISTORIC

       POSIX.1-2001.

CONSULTAȚI ȘI

       readdir(3)

TRADUCERE

       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.

Pagini de manual de Linux 6.9.1                    2 mai 2024                                       readdir_r(3)