logo

Codurile de eroare Linux

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ă:

Codurile de eroare Linux

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.

Codurile de eroare Linux

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:

Codurile de eroare Linux

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:

Codurile de eroare Linux

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:

Codurile de eroare Linux

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:

Codurile de eroare Linux

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.