Provided by: manpages-ro-dev_4.28.0-2_all bug

NUME

       errno - numărul ultimei erori

BIBLIOTECA

       Biblioteca C standard (libc, -lc)

SINOPSIS

       #include <errno.h>

DESCRIERE

       Fișierul  de  antet  <errno.h>  definește  variabila  întreagă  errno, care este configurată de apelurile
       sistemului și de unele funcții de bibliotecă în cazul unei erori pentru a indica ce nu a mers bine.

   errno
       Valoarea din errno este semnificativă numai atunci când valoarea de returnare  a  apelului  a  indicat  o
       eroare  (de exemplu, -1 de la majoritatea apelurilor sistemului; -1 sau NULL de la majoritatea funcțiilor
       de bibliotecă); o funcție care reușește este autorizată să modifice errno.  Valoarea lui  errno  nu  este
       niciodată stabilită la zero de către niciun apel de sistem sau funcție de bibliotecă.

       Pentru unele apeluri de sistem și funcții de bibliotecă (de exemplu, getpriority(2)), -1 este un rezultat
       valid  în caz de succes.  În astfel de cazuri, o returnare de succes poate fi diferențiată de o returnare
       de eroare prin configurarea errno la zero înainte de apel și apoi, dacă apelul returnează  o  stare  care
       indică faptul că este posibil să fi avut loc o eroare, verificând pentru a vedea dacă errno are o valoare
       diferită de zero.

       errno  este  definit de standardul ISO C ca fiind o lvaloare modificabilă de tip int și nu trebuie să fie
       declarată explicit; errno poate fi un macro. errno este „local într-un fir”l; definirea sa într-un fir nu
       afectează valoarea sa în niciun alt fir.

   Numere și nume de erori
       Numerele de eroare valide sunt  toate  numere  pozitive.  Fișierul  de  antet  <errno.h>  definește  nume
       simbolice pentru fiecare dintre numerele de eroare posibile care pot apărea în errno.

       Toate  numele  erorilor  specificate  de  POSIX.1 trebuie să aibă valori distincte, cu excepția EAGAIN și
       EWOULDBLOCK, care pot fi aceleași. În Linux, acestea două au aceeași valoare pe toate arhitecturile.

       Numerele de eroare care corespund fiecărui nume simbolic variază de la un sistem UNIX la altul  și  chiar
       de la o arhitectură la alta în Linux. Prin urmare, valorile numerice nu sunt incluse ca parte a listei de
       nume  de  erori  de mai jos. Funcțiile perror(3) și strerror(3) pot fi utilizate pentru a converti aceste
       nume în mesaje de eroare textuale corespunzătoare.

       În orice sistem Linux particular, se poate obține o listă a tuturor  numelor  simbolice  de  erori  și  a
       numerelor de erori corespunzătoare folosind comanda errno(1) (parte a pachetului moreutils):

           $ errno -l
           EPERM 1 Operația nu este permisă
           ENOENT 2 Nu există un astfel de fișier sau director
           ESRCH 3 Nu există un astfel de proces
           EINTR 4 Apel de sistem întrerupt
           EIO 5 Eroare de intrare/ieșire
           ...

       Comanda  errno(1)  poate fi, de asemenea, utilizată pentru a căuta numere și nume de erori individuale și
       pentru a căuta erori utilizând șiruri de caractere din descrierea erorii, ca în exemplele următoare:

           $ errno 2
           ENOENT 2 Nu există un astfel de fișier sau director
           $ errno ESRCH
           ESRCH 3 Nu există un astfel de proces
           $ errno -s permission
           EACCES 13 Permisiune refuzată

   Lista numelor de erori
       În lista de nume simbolice ale erorilor de mai jos, diferite nume sunt marcate după cum urmează:

       POSIX.1-2001
              Numele este definit de POSIX.1-2001 și este definit în versiunile ulterioare ale POSIX.1, dacă  nu
              se indică altfel.

       POSIX.1-2008
              Numele este definit în POSIX.1-2008, dar nu era prezent în standardele POSIX.1 anterioare.

       C99    Numele este definit de C99.

       Mai jos este o listă a numelor simbolice de erori care sunt definite în Linux:

       E2BIG           Lista de argumente este prea lungă (POSIX.1-2001).

       EACCES          Permisiune refuzată (POSIX.1-2001).

       EADDRINUSE      Adresa este deja utilizată (POSIX.1-2001).

       EADDRNOTAVAIL   Adresa nu este disponibilă (POSIX.1-2001).

       EAFNOSUPPORT    Familia de adrese nu este acceptată (POSIX.1-2001).

       EAGAIN          Resursă temporar indisponibilă (poate fi aceeași valoare ca EWOULDBLOCK) (POSIX.1-2001).

       EALREADY        Conexiunea este deja în curs (POSIX.1-2001).

       EBADE           Schimb nevalid.

       EBADF           Descriptor de fișier incorect (POSIX.1-2001).

       EBADFD          Descriptor de fișier în stare proastă.

       EBADMSG         Mesaj incorect (POSIX.1-2001).

       EBADR           Descriptor de solicitare nevalid.

       EBADRQC         Cod de solicitare nevalid.

       EBADSLT         Slot nevalid.

       EBUSY           Dispozitiv sau resursă ocupată (POSIX.1-2001).

       ECANCELED       Operație anulată (POSIX.1-2001).

       ECHILD          Nu există procese-copil (POSIX.1-2001).

       ECHRNG          Numărul canalului este în afara intervalului.

       ECOMM           Eroare de comunicare la trimitere.

       ECONNABORTED    Conexiune întreruptă (POSIX.1-2001).

       ECONNREFUSED    Conexiune refuzată (POSIX.1-2001).

       ECONNRESET      Conexiune reinițiată (POSIX.1-2001).

       EDEADLK         Blocare de resursă evitată (POSIX.1-2001).

       EDEADLOCK       Pe  majoritatea  arhitecturilor,  un  sinonim  pentru  EDEADLK.  Pe unele arhitecturi (de
                       exemplu, Linux MIPS, PowerPC, SPARC), acesta este un cod de  eroare  separat  „Eroare  de
                       blocare a blocajului fișierului”.

       EDESTADDRREQ    Adresă de destinație necesară (POSIX.1-2001).

       EDOM            Argument matematic în afara domeniului funcției (POSIX.1, C99).

       EDQUOT          Cota de disc a fost depășită (POSIX.1-2001).

       EEXIST          Fișierul există (POSIX.1-2001).

       EFAULT          Adresă greșită (POSIX.1-2001).

       EFBIG           Fișier prea mare (POSIX.1-2001).

       EHOSTDOWN       Gazda este deconectată.

       EHOSTUNREACH    Gazda este inaccesibilă (POSIX.1-2001).

       EHWPOISON       Pagina de memorie are o eroare hardware.

       EIDRM           Identificator eliminat (POSIX.1-2001).

       EILSEQ          Caracter multioctet sau lat nevalid sau incomplet (POSIX.1, C99).

                       Textul afișat aici este descrierea erorii glibc; în POSIX.1, această eroare este descrisă
                       ca „Secvență ilegală de octeți”.

       EINPROGRESS     Operațiune în curs de desfășurare (POSIX.1-2001).

       EINTR           Apel de funcție întrerupt (POSIX.1-2001); a se vedea signal(7).

       EINVAL          Argument nevalid (POSIX.1-2001).

       EIO             Eroare de intrare/ieșire (POSIX.1-2001).

       EISCONN         Soclul este conectat (POSIX.1-2001).

       EISDIR          Este un director (POSIX.1-2001).

       EISNAM          Este un fișier de tipul numit.

       EKEYEXPIRED     Cheia a expirat.

       EKEYREJECTED    Cheia a fost respinsă de către serviciu.

       EKEYREVOKED     Cheia a fost revocată.

       EL2HLT          Nivelul 2 oprit.

       EL2NSYNC        Nivelul 2 nu este sincronizat.

       EL3HLT          Nivelul 3 oprit.

       EL3RST          Nivelul 3 reinițiat.

       ELIBACC         Nu se poate accesa o bibliotecă partajată necesară.

       ELIBBAD         Se accesează o bibliotecă partajată coruptă.

       ELIBMAX         Se încearcă vincularea la prea multe biblioteci partajate.

       ELIBSCN         Secțiunea .lib din a.out este coruptă

       ELIBEXEC        Nu se poate executa direct o bibliotecă partajată.

       ELNRNG          Numărul de legătură este în afara intervalului.

       ELOOP           Prea multe niveluri de legături simbolice (POSIX.1-2001).

       EMEDIUMTYPE     Tip de mediu(suport) greșit.

       EMFILE          Prea  multe  fișiere  deschise  (POSIX.1-2001).  Cauzată frecvent de depășirea limitei de
                       resurse RLIMIT_NOFILE descrisă în getrlimit(2).  Poate fi cauzată și de depășirea limitei
                       specificate în /proc/sys/fs/nr_open.

       EMLINK          Prea multe legături (POSIX.1-2001).

       EMSGSIZE        Mesajul este prea lung (POSIX.1-2001).

       EMULTIHOP       Încercare de salturi multiple „multihop” (POSIX.1-2001).

       ENAMETOOLONG    Numele fișierului este prea lung (POSIX.1-2001).

       ENETDOWN        Rețeaua este căzută(dezactivată) (POSIX.1-2001).

       ENETRESET       Conexiune întreruptă de rețea (POSIX.1-2001).

       ENETUNREACH     Rețea inaccesibilă (POSIX.1-2001).

       ENFILE          Prea multe fișiere deschise în sistem (POSIX.1-2001). În Linux, acesta este  probabil  un
                       rezultat al atingerii limitei /proc/sys/fs/file-max (a se vedea proc(5)).

       ENOANO          Nici  un anod -- NT.: traducerea literală; de asemenea „anode” poate să însemne o vaiație
                       de nod-i, sau nod-alocat.

       ENOBUFS         Nu există spațiu tampon disponibil [POSIX.1 (opțiunea XSI STREAMS)].

       ENODATA         Atributul numit nu există sau procesul  nu  are  acces  la  acest  atribut;  a  se  vedea
                       xattr(7).

                       În  POSIX.1-2001  (opțiunea XSI STREAMS), această eroare a fost descrisă ca „Niciun mesaj
                       nu este disponibil în coada de citire a fluxului (STREAM)”.

       ENODEV          Nu există un astfel de dispozitiv (POSIX.1-2001).

       ENOENT          Nu există un astfel de fișier sau director (POSIX.1-2001).

                       De obicei, această eroare apare atunci când un nume de rută specificat nu există, sau una
                       dintre componentele din prefixul de director al unui nume de rută nu există,  sau  numele
                       de rută specificat este o legătură simbolică întreruptă(fără țintă).

       ENOEXEC         Eroare de format de execuție (POSIX.1-2001).

       ENOKEY          Cheia necesară nu este disponibilă.

       ENOLCK          Nu există blocaje disponibile (POSIX.1-2001).

       ENOLINK         Legătura a fost întreruptă (POSIX.1-2001).

       ENOMEDIUM       Nu a fost găsit niciun mediu(suport).

       ENOMEM          Nu este suficient spațiu/nu se poate aloca memorie (POSIX.1-2001).

       ENOMSG          Niciun mesaj de tipul dorit (POSIX.1-2001).

       ENONET          Mașina nu este în rețea.

       ENOPKG          Pachetul nu este instalat.

       ENOPROTOOPT     Protocolul nu este disponibil (POSIX.1-2001).

       ENOSPC          Nu mai există spațiu liber pe dispozitiv (POSIX.1-2001).

       ENOSR           Nu există resurse STREAM [POSIX.1 (XSI STREAMS option)].

       ENOSTR          Nu este un flux(STREAM) [POSIX.1 (XSI STREAMS option)].

       ENOSYS          Funcție neimplementată (POSIX.1-2001).

       ENOTBLK         Este necesar un dispozitiv de blocuri.

       ENOTCONN        Soclul nu este conectat (POSIX.1-2001).

       ENOTDIR         Nu este un director (POSIX.1-2001).

       ENOTEMPTY       Directorul nu este gol (POSIX.1-2001).

       ENOTRECOVERABLE Stare nerecuperabilă (POSIX.1-2008).

       ENOTSOCK        Nu este un soclu (POSIX.1-2001).

       ENOTSUP         Operație neacceptată (POSIX.1-2001).

       ENOTTY          Operație de control de In/Ieș nepotrivită (POSIX.1-2001).

       ENOTUNIQ        Numele nu este unic în rețea.

       ENXIO           Nu există un astfel de dispozitiv sau adresă (POSIX.1-2001).

       EOPNOTSUPP      Operația nu este acceptată pe soclu (POSIX.1-2001).

                       (ENOTSUP  și EOPNOTSUPP au aceeași valoare în Linux, dar conform POSIX.1 aceste valori de
                       eroare ar trebui să fie distincte.)

       EOVERFLOW       Valoare prea mare pentru a fi stocată în tipul de date (POSIX.1-2001).

       EOWNERDEAD      Proprietarul a murit (POSIX.1-2008).

       EPERM           Operație nepermisă (POSIX.1-2001).

       EPFNOSUPPORT    Familia de protocoale nu este acceptată.

       EPIPE           Conductă ruptă (POSIX.1-2001).

       EPROTO          Eroare de protocol (POSIX.1-2001).

       EPROTONOSUPPORT Protocolul nu este acceptat (POSIX.1-2001).

       EPROTOTYPE      Tip greșit de protocol pentru soclu (POSIX.1-2001).

       ERANGE          Rezultatul este prea mare (POSIX.1, C99).

       EREMCHG         Adresa de la distanță a fost modificată.

       EREMOTE         Obiectul este la distanță.

       EREMOTEIO       Eroare de In/Ieș la distanță.

       ERESTART        Apelul de sistem întrerupt ar trebui să fie repornit.

       ERFKILL         Operația nu este posibilă din cauza RF-kill (sercviciul de radiofrecvență deconectat).

       EROFS           Sistem de fișiere de numai-citire (POSIX.1-2001).

       ESHUTDOWN       Nu se poate trimite după deconectarea punctului final de transfer.

       ESPIPE          Căutare nevalidă (POSIX.1-2001).

       ESOCKTNOSUPPORT Tip de soclu neacceptat.

       ESRCH           Nu există un astfel de proces (POSIX.1-2001).

       ESTALE          Gestionare de fișiere învechită (POSIX.1-2001).

                       Această eroare poate apărea pentru NFS și pentru alte sisteme de fișiere.

       ESTRPIPE        Eroare de conductă de fluxuri.

       ETIME           Temporizator expirat [POSIX.1 (XSI STREAMS option)].

                       (POSIX.1 spune „STREAM ioctl(2) timeout” - s-a depășit timpul de  așteptare  al  FLUXULUI
                       ioctl(2).)

       ETIMEDOUT       Conexiunea a expirat (POSIX.1-2001).

       ETOOMANYREFS    Prea multe referințe: nu se pot îmbina.

       ETXTBSY         Fișier text ocupat (POSIX.1-2001).

       EUCLEAN         Structura trebuie curățată.

       EUNATCH         Controlorul de protocol nu este atașat.

       EUSERS          Prea mulți utilizatori.

       EWOULDBLOCK     Operația s-ar putea bloca (poate fi aceeași valoare ca EAGAIN) (POSIX.1-2001).

       EXDEV           Legătură nevalidă între dispozitive (POSIX.1-2001).

       EXFULL          Schimbul este plin.

NOTE

       O greșeală frecventă este de a face

           if (apelul-oarecare() == -1) {
               printf("apelul-oarecare() a eșuat\n");
               if (errno == ...) { ... }
           }

       în  care errno nu mai trebuie să aibă valoarea pe care a avut-o la returnarea de la apelul-oarecare() (de
       exemplu, este posibil să fi fost modificată de printf(3)). Dacă valoarea lui errno trebuie păstrată  de-a
       lungul unui apel de bibliotecă, aceasta trebuie salvată:

           if (apelul-oarecare() == -1) {
               int errsv = errno;
               printf("apelul-oarecare() a eșuat\n");
               if (errsv == ...) { ... }
           }

       Rețineți  că  API-urile  firelor  POSI nu configurează errno în caz de eroare. În schimb, în caz de eșec,
       acestea returnează un număr de eroare ca rezultat al  funcției.  Aceste  numere  de  eroare  au  aceleași
       semnificații ca numerele de eroare returnate în errno de alte API-uri.

       Pe  unele  sisteme  vechi,  <errno.h> nu era prezent sau nu declara errno, astfel încât era necesar să se
       declare errno manual (adică extern int errno). Nu faceți acest lucru.  A  încetat  de  mult  să  mai  fie
       necesar și va cauza probleme cu versiunile moderne ale bibliotecii C.

CONSULTAȚI ȘI

       errno(1), err(3), error(3), perror(3), strerror(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                   15 iunie 2024                                         errno(3)