Codurile de eroare Linux sunt acele coduri care sunt afișate dacă apare o eroare în sistem în timpul lucrului sau utilizării unui program. Erorile pot fi recunoscute cu ajutorul codurilor de eroare. Codurile de eroare ne ajută să recunoaștem sursa erorii.
Dacă lucrăm pe un sistem Linux, este evident că putem întâlni erori. Unele erori pot fi minore și nu pot duce la întreruperea programului. Dar pot exista unele erori care pot face ca un sistem sau program să nu mai răspundă. Aceste erori pot duce la pierderea datelor sau pot împiedica finalizarea programului. În mare parte erorile sunt afișate sub formă de coduri sau mesaje.
În această secțiune, vom vedea erori în programarea C și o listă de posibile erori în Linux sistem.
Erori Linux în programarea C
Un programator calificat ar trebui să știe cum să facă față erorilor. Limbajul de programare C nu oferă suport direct pentru tratarea erorilor. Trebuie să detectăm sursa erorii și să o rezolvăm. În limbajul C, valorile returnate afișează eșecul sau succesul. Dacă o funcție din programul C eșuează, trebuie să gestionăm eroarea în consecință; în caz contrar, înregistrează ultimele erori într-un fișier jurnal.
În timpul executării programelor C, este posibil să observăm câteva numere de eroare, cum ar fi „Eroarea nr este: 17”. Aici, eroarea nr. 17 înseamnă că fișierul există deja. Fiecare număr de eroare are o anumită semnificație.
Limbajul C acceptă o variabilă 'eroare nu .' Folosind această variabilă de număr de eroare, putem folosi unele funcții de tratare a erorilor pentru a o gestiona corect.
Pentru a utiliza numărul de eroare al variabilei externe, trebuie să includem un fișier antet 'errno.h.' Fișierul antet este folosit pentru a defini variabila „errno”. Variabila errno este setată de apelurile de sistem și de funcțiile de bibliotecă în apariția erorii. Există două funcții importante în limbaj de programare C pentru a face față erorilor; groază și strerror . Funcția perror este utilizată pentru a tipări descrierea erorii, iar funcția sterror returnează un șir cu cod de eroare.
Să afișăm lista codurilor de eroare utilizând errno.
Linux errno
Utilitarul errno este folosit pentru a căuta coduri errno, nume de macro-uri și descrierile corespunzătoare. De exemplu, dacă oferim ENOENT pe un sistem Linux, acesta va afișa codul 2 și descrierea ' Nu există un astfel de fișier sau director .' Dacă furnizăm codul 2, atunci acesta va afișa ENOENT și descrierea lui .
Dacă utilitarul errno nu este instalat pe mașina noastră, va afișa eroarea după cum urmează:
Pentru a-l instala, executați comanda de mai jos:
sudo apt install moreutils
Prin executarea comenzii de mai sus, pachetul moreutils este instalat pe mașina noastră care conține utilitarul errno.
Afișați Lista codurilor de eroare
Pentru a afișa lista codurilor de eroare, executați comanda după cum urmează:
errno -l
Comanda de mai sus va afișa lista de coduri de eroare RedHat. Luați în considerare rezultatul de mai jos:
Afișează informațiile unui număr de eroare
Pentru a afișa informațiile unui anumit număr de eroare, executați comanda după cum urmează:
errno 2
Comanda de mai sus va afișa descrierea erorii numărul 2. Luați în considerare rezultatul de mai jos:
Afișează informațiile unui nume de eroare
Pentru a afișa informațiile despre un anumit nume de eroare, executați comanda errno, urmată de numele erorii. De exemplu, pentru a afișa informațiile unui nume de eroare „ESRCH ,' executați comanda după cum urmează:
errno ESRCH
Comanda de mai sus va afișa informațiile despre numele erorii specificate. Luați în considerare rezultatul de mai jos:
Afișați eroarea folosind șiruri de caractere
Pentru a afișa o descriere a erorii utilizând un șir din descriere, executați comanda după cum urmează:
errno -s permission
Comanda de mai sus va afișa erorile a căror descriere conține permisiunea de șir. Luați în considerare rezultatul de mai jos:
Lista erorilor sistemului Linux
Mai jos este o listă parțială a posibilelor erori ale sistemului Linux:
Cod de eroare | eroare nr | Descriere |
---|---|---|
Superior | 1 | Este afișat dacă operațiunea nu este permisă. |
ENOENT | 2 | Este afișat dacă nu există un astfel de fișier sau director. |
ESRCH | 3 | Este afișat dacă nu există un astfel de proces. |
EINTR | 4 | Este afișat pentru Apel de sistem întrerupt |
EIO | 5 | Este afișat pentru eroare de intrare/ieșire. |
ENXIO | 6 | Este afișat dacă nu există un astfel de dispozitiv sau dacă există o adresă. |
E2BIG | 7 | Este afișat dacă lista de argumente este prea lungă. |
ENOEXEC | 8 | Este afișat dacă există o eroare de format exec |
EBADF | 9 | Este afișat în cazul unui descriptor de fișier prost. |
ECHILD | 10 | Este afișat dacă nu există niciun proces copil. |
DIN NOU | unsprezece | Este afișat dacă resursa este temporar indisponibilă. |
ENOMEM | 12 | Este afișat dacă sistemul nu poate aloca memorie. |
ACCES | 13 | Este afișat dacă permisiunea este refuzată. |
EFAULT | 14 | Este afișat dacă există o adresă proastă. |
ENOTBLK | cincisprezece | Este afișat dacă este necesar blocarea dispozitivului. |
OCUPAT | 16 | Este afișat dacă dispozitivul sau resursa este ocupată. |
EEXISTĂ | 17 | Este afișat dacă fișierul există deja. |
EXDEV | 18 | Este afișat dacă există o legătură între dispozitive nevalidă. |
ENODEV | 19 | Este afișat dacă nu există un astfel de dispozitiv. |
ENOTDIR | douăzeci | Este afișat dacă nu există un director. |
EISDIR | douăzeci și unu | Este afișat dacă există un director. |
ALEGEREA UNICA | 22 | Este afișat dacă există un argument nevalid. |
ÎMBRACĂ | 23 | Este afișat dacă există prea multe fișiere deschise în sistem. |
MORT | 24 | Este afișat dacă există prea multe fișiere deschise. |
ENOTTY | 25 | Este afișat dacă există un ioctl neadecvat pentru dispozitiv. |
ETXTBSY | 26 | Este afișat dacă fișierul text este ocupat. |
EFBIG | 27 | Este afișat dacă fișierul este prea mare. |
ENOSPC | 28 | Este afișat dacă nu mai există spațiu pe dispozitiv. |
ESPIPE | 29 | Este afișat în caz de căutare ilegală. |
EROFS | 30 | Este afișat în cazul sistemului de fișiere numai în citire. |
EMLINK | 31 | Este afișat dacă există prea multe link-uri. |
EPIPE | 32 | Este afisat in cazul spargerii conductei. |
EDOM | 33 | Este afișat dacă argumentul numeric este în afara domeniului. |
ERANGE | 3. 4 | Este afișat dacă rezultatul numeric este în afara intervalului. |
EDEADLK | 35 | Este afișat dacă se evită blocarea resurselor. |
ENAMETOOLONG | 36 | Este afișat dacă numele fișierului este prea lung. |
ENOLCK | 37 | Este afișat dacă nu sunt disponibile încuietori. |
ENOSYS | 38 | Este afișat dacă funcția nu este implementată. |
ENOTEMPTIE | 39 | Este afișat dacă directorul nu este gol. |
ELOOP | 40 | Este afișat dacă există prea multe niveluri de legături simbolice. |
ENOMSG | 42 | Este afișat dacă nu există niciun mesaj de tipul dorit. |
EIDRM | 43 | Este afișat dacă identificatorul este eliminat. |
ECHRNG | 44 | Este afișat dacă numărul canalului este în afara intervalului. |
EL2NSYNC | Patru cinci | Este afișat dacă nivelul 2 nu este sincronizat. |
EL3HLT | 46 | Este afișat dacă Nivelul 3 este oprit. |
EL3RST | 47 | Este afișat dacă nivelul 3 este resetat. |
ELNRNG | 48 | Este afișat dacă numărul linkului este în afara intervalului. |
EUNATCH | 49 | Este afișat dacă driverul de protocol nu este atașat. |
ENOCSI | cincizeci | Este afișat dacă nu există nicio structură CSI disponibilă. |
EL2HLT | 51 | Este afișat dacă Nivelul 2 este oprit. |
ACESTA A FOST | 52 | Este afișat în caz de schimb nevalid. |
EBADR | 53 | Este afișat în cazul unui descriptor de cerere nevalid. |
EXFULL | 54 | Este afișat dacă schimbul este plin. |
ENOANO | 55 | Este afișat în cazul fără anod. |
EBADRQC | 56 | Este afișat pentru codul de solicitare nevalid. |
EBADSLT | 57 | Este afișat pentru slot nevalid. |
EBFONT | 59 | Este afișat dacă există un format de fișier de font rău. |
UNILATERAL | 60 | Este afișat dacă dispozitivul nu este un flux. |
ENODATA | 61 | Este afișat dacă nu există date disponibile. |
ETIME | 62 | Este afișat în cazul în care cronometrul a expirat. |
ENOSR | 63 | Este afișat în cazul în care resursele nu sunt disponibile. |
ENONET | 64 | Este afișat dacă aparatul nu este în rețea. |
ENOPKG | 65 | Este afișat dacă pachetul nu este instalat. |
EREMOTE | 66 | Este afișat dacă obiectul este la distanță. |
ENOLINK | 67 | Este afișat dacă legătura a fost întreruptă. |
EADV | 68 | Este afișat pentru eroare de publicitate. |
ESRMNT | 69 | Este afișat pentru eroarea Srmount. |
ECOMM | 70 | Este afișat dacă există o eroare de comunicare la trimitere. |
EPROTO | 71 | Este afișat pentru eroare de protocol. |
EMULTIHOP | 72 | Se afișează pentru tentativa de salt multiplu. |
EDOTDOT | 73 | Este afișat pentru o eroare specifică RFS. |
EBADMSG | 74 | Este afișat pentru mesajul Bad. |
DEVERSARE | 75 | Este afișat dacă valoarea este prea mare pentru tipul de date definit. |
ENOTUNIQ | 76 | Este afișat dacă numele nu este unic în rețea. |
EBDFD | 77 | Este afișat dacă descriptorul de fișier este în stare proastă. |
EREMCHG | 78 | Este afișat dacă adresa de la distanță este schimbată. |
ELIBACC | 79 | Este afișat dacă nu putem accesa o bibliotecă partajată necesară. |
ELIBBAD | 80 | Este afișat în cazul accesării unei biblioteci partajate corupte. |
ELIBSCN | 81 | Este afișat dacă există o secțiune .lib în a.out este corupt. |
ELIBMAX | 82 | Este afișat dacă încercăm să conectăm în prea multe biblioteci partajate. |
ELIBEXEC | 83 | Este afișat dacă nu putem executa o bibliotecă partajată direct. |
EILSEQ | 84 | Este afișat pentru un caracter multioctet sau lat nevalid sau incomplet |
ERESTART | 85 | Este afișat pentru a informa că apelul de sistem întrerupt trebuie repornit. |
ESTRPIPE | 86 | Este afișat dacă există o eroare a conductei de fluxuri. |
EUSERS | 87 | Este afișat pentru prea mulți utilizatori. |
ENOTSOCK | 88 | Este afișat pentru funcționarea cu priză pe fără priză. |
EDESTADDRREQ | 89 | Este afișat dacă este necesară adresa de destinație. |
EMSGSIZE | 90 | Este afișat dacă mesajul este prea lung. |
EPROTOTIP | 91 | Este afișat dacă protocolul este de tip greșit pentru socket. |
ENOPROTOOPT | 92 | Este afișat dacă protocolul nu este disponibil. |
EPROTONOSUPPORT | 93 | Este afișat dacă protocolul nu este acceptat. |
ESOCKTNOSSUPORT | 94 | Este afișat dacă tipul de socket nu este acceptat. |
EOPNOTSUPP | 95 | Este afișat dacă operațiunea nu este acceptată. |
EPFNOSSUPORT | 96 | Este afișat dacă familia de protocoale nu este acceptată. |
EAFNOSSUPORT | 97 | Este afișat dacă familia de adrese nu este acceptată de protocol. |
EADDRINUS | 98 | Este afișat dacă adresa este deja utilizată. |
EADDRNOTAVAIL | 99 | Este afișat dacă sistemul nu poate atribui adresa solicitată. |
ENETDOWN | 100 | Este afișat dacă rețeaua este oprită. |
ENETUNREACH | 101 | Este afișat dacă rețeaua nu este accesibilă. |
ENETRESET | 102 | Este afișat dacă rețeaua a întrerupt conexiunea la resetare. |
ABORTAT | 103 | Este afișat dacă software-ul a cauzat întreruperea conexiunii. |
ECONNRESET | 104 | Este afișat dacă conexiunea este resetată de către egal. |
ENOBUFS | 105 | Este afișat dacă nu există spațiu tampon disponibil. |
ESKON | 106 | Este afișat dacă punctul final de transport este deja conectat. |
ENOTCONN | 107 | Este afișat dacă punctul final de transport nu este conectat. |
OPRIRE | 108 | Este afișat dacă sistemul nu poate trimite după oprirea punctului final de transport. |
ETOOMANYREFS | 109 | Este afișat dacă există prea multe referințe: nu se poate îmbina. |
ETIMEDOUT | 110 | Este afișat dacă conexiunea a expirat. |
REFUZAT | 111 | Este afișat dacă conexiunea este refuzată. |
EHOSTDOWN | 112 | Este afișat dacă Host-ul este oprit. |
EHOSTUNREACH | 113 | Este afișat dacă nu există nicio rută către găzduire. |
DEJA | 114 | Este afișat dacă operațiunea este deja în curs. |
FIECARE PROGRES | 115 | Este afișat dacă operațiunea este acum în curs. |
CLIC | 116 | Este afișat pentru mânerul fișierului învechit. |
EUCLEAN | 117 | Este afișat dacă structura necesită curățare. |
UNIFORMĂ | 118 | Nu este afișat pentru un fișier de tip XENIX numit. |
ENAVAIL | 119 | Este afișat dacă nu există semafore XENIX disponibile. |
EISNAM | 120 | Este afișat dacă există un fișier de tip numit. |
EREMOTIE | 121 | Este afișat pentru eroare I/O la distanță. |
EDQUOT | 122 | Este afișat dacă cota de disc este depășită. |
ENOMEDIU | 123 | Este afișat dacă nu a fost găsit niciun mediu. |
TIP MEDIUM | 124 | Este afișat dacă există un tip de mediu greșit. |
ANULATĂ | 125 | Este afișat dacă operațiunea este anulată. |
ENOKEY | 126 | Este afișat dacă cheia necesară nu este disponibilă. |
EKEYEXPIRED | 127 | Este afișat dacă cheia a expirat. |
CHIUL REVOCAT | 128 | Este afișat dacă cheia a fost revocată. |
CHIUL RESPINS | 129 | Este afișat dacă cheia a fost respinsă de service. |
EOWNERDEAD | 130 | Este afișat dacă Proprietarul a murit. |
ENOTRECUPERABILE | 131 | Este afișat pentru nicio stare de recuperare. |
ERFKILL | 132 | Este afișat dacă operația nu este posibilă din cauza RF-kill. |
EHWPOISON | 133 | Este afișat dacă pagina de memorie are o eroare hardware. |