I codici di errore Linux sono quei codici che vengono visualizzati se si verifica un errore nel sistema mentre si lavora o si utilizza un programma. Gli errori possono essere riconosciuti con l'aiuto dei codici di errore. I codici di errore ci aiutano a riconoscere la fonte dell'errore.
Se stiamo lavorando su un sistema Linux, è ovvio che potremmo riscontrare errori. Alcuni errori possono essere minori e non portare all'interruzione del programma. Ma possono verificarsi alcuni errori che possono causare l'interruzione della risposta di un sistema o di un programma. Questi errori possono portare alla perdita di dati o impedire il completamento del programma. Nella maggior parte dei casi gli errori vengono visualizzati sotto forma di codici o messaggi.
In questa sezione vedremo gli errori nella programmazione in C e un elenco di possibili errori nel file Linux sistema.
Errori di Linux nella programmazione in C
Un programmatore esperto dovrebbe sapere come gestire gli errori. Il linguaggio di programmazione C non fornisce supporto diretto per la gestione degli errori. Dobbiamo individuare la fonte dell'errore e affrontarla. Nel linguaggio C, i valori restituiti mostrano il fallimento o il successo. Se una funzione nel programma C fallisce, dobbiamo gestire l'errore di conseguenza; altrimenti registra gli errori per ultimi in un file di registro.
Durante l'esecuzione dei programmi C, potremmo notare alcuni numeri di errore come 'L'errore n. è: 17'. In questo caso l'errore n. 17 significa che il file esiste già. Ogni numero di errore ha un significato.
Il linguaggio C supporta una variabile 'errore .' Utilizzando questa variabile del numero di errore, possiamo utilizzare alcune funzioni di gestione degli errori per gestirla correttamente.
Per utilizzare il numero di errore della variabile esterna, dobbiamo includere un file di intestazione 'errno.h.' Il file di intestazione viene utilizzato per definire la variabile 'errno'. La variabile errno viene impostata dalle chiamate di sistema e dalle funzioni di libreria al verificarsi dell'errore. Ci sono due funzioni importanti in Linguaggio di programmazione C gestire gli errori; errore E strerro . La funzione perror viene utilizzata per stampare la descrizione dell'errore e la funzione sterror restituisce una stringa con il codice di errore.
Visualizziamo l'elenco dei codici di errore utilizzando errno.
Linux non è corretto
L'utilità errno viene utilizzata per cercare i codici errno, i nomi delle macro e le descrizioni corrispondenti. Ad esempio, se forniamo ENOENT su un sistema Linux, verrà visualizzato il codice 2 e la descrizione ' Nessun file o directory con questo nome .' Se forniamo il codice 2, verrà visualizzato il file ENOENT e la sua descrizione .
Se l'utilità errno non è installata sul nostro computer, visualizzerà l'errore come segue:
Per installarlo, esegui il comando seguente:
sudo apt install moreutils
Eseguendo il comando precedente, sul nostro computer viene installato il pacchetto moreutils che contiene l'utilità errno.
Visualizza l'elenco dei codici di errore
Per visualizzare l'elenco dei codici di errore, eseguire il comando come segue:
errno -l
Il comando precedente visualizzerà l'elenco dei codici di errore di RedHat. Considera l'output seguente:
Visualizza le informazioni di un numero di errore
Per visualizzare le informazioni su un particolare numero di errore, eseguire il comando come segue:
errno 2
Il comando precedente visualizzerà la descrizione dell'errore numero 2. Considera l'output seguente:
Visualizza le informazioni sul nome di un errore
Per visualizzare le informazioni su un particolare nome di errore, eseguire il comando errno, seguito dal nome dell'errore. Ad esempio, per visualizzare le informazioni sul nome di un errore 'ESRCH ,' esegui il comando come segue:
errno ESRCH
Il comando precedente visualizzerà le informazioni sul nome dell'errore specificato. Considera l'output seguente:
Visualizza l'errore utilizzando le stringhe
Per visualizzare una descrizione dell'errore utilizzando una stringa dalla descrizione, eseguire il comando come segue:
errno -s permission
Il comando precedente visualizzerà gli errori la cui descrizione contiene l'autorizzazione della stringa. Considera l'output seguente:
Elenco degli errori del sistema Linux
Di seguito è riportato un elenco parziale dei possibili errori del sistema Linux:
Codice di errore | errore n | Descrizione |
---|---|---|
Superiore | 1 | Viene visualizzato se l'operazione non è consentita. |
ENOENTE | 2 | Viene visualizzato se non esiste un file o una directory di questo tipo. |
ESRCH | 3 | Viene visualizzato se non esiste tale processo. |
EINTR | 4 | Viene visualizzato per la chiamata di sistema interrotta |
EIO | 5 | Viene visualizzato per errore di input/output. |
ENXIO | 6 | Viene visualizzato se non esiste un dispositivo o un indirizzo di questo tipo. |
E2BIG | 7 | Viene visualizzato se l'elenco degli argomenti è troppo lungo. |
ENOEXEC | 8 | Viene visualizzato se è presente un errore nel formato exec |
EBADF | 9 | Viene visualizzato in caso di descrittore di file errato. |
ECHILD | 10 | Viene visualizzato se non esiste alcun processo figlio. |
ANCORA | undici | Viene visualizzato se la risorsa è temporaneamente non disponibile. |
ENOMEMA | 12 | Viene visualizzato se il sistema non può allocare memoria. |
EACCES | 13 | Viene visualizzato se l'autorizzazione viene negata. |
ERRORE | 14 | Viene visualizzato se è presente un indirizzo errato. |
ENOTBLK | quindici | Viene visualizzato se è richiesto il dispositivo Blocca. |
OCCUPATO | 16 | Viene visualizzato se il dispositivo o la risorsa sono occupati. |
ESISTE | 17 | Viene visualizzato se il file esiste già. |
EXDEV | 18 | Viene visualizzato se è presente un collegamento tra dispositivi non valido. |
ENODEV | 19 | Viene visualizzato se non esiste un dispositivo di questo tipo. |
ENOTDIR | venti | Viene visualizzato se non è presente una directory. |
EISDIR | ventuno | Viene visualizzato se è presente una directory. |
SCELTA UNICA | 22 | Viene visualizzato se è presente un argomento non valido. |
METTERE | 23 | Viene visualizzato se ci sono troppi file aperti nel sistema. |
MORTO | 24 | Viene visualizzato se ci sono troppi file aperti. |
ENOTTITO | 25 | Viene visualizzato se è presente un ioctl inappropriato per il dispositivo. |
ETXTBSY | 26 | Viene visualizzato se il file di testo è occupato. |
EFBIG | 27 | Viene visualizzato se il file è troppo grande. |
ENOSPC | 28 | Viene visualizzato se non c'è spazio rimasto sul dispositivo. |
ESPIPE | 29 | Viene visualizzato in caso di ricerca illegale. |
EROFS | 30 | Viene visualizzato in caso di file system di sola lettura. |
EMLINK | 31 | Viene visualizzato se sono presenti troppi collegamenti. |
EPIPE | 32 | Viene visualizzato in caso di tubo rotto. |
EDOM | 33 | Viene visualizzato se l'argomento numerico è fuori dominio. |
ARANCIO | 3.4 | Viene visualizzato se il risultato numerico è fuori intervallo. |
EDEADLK | 35 | Viene visualizzato se viene evitato il deadlock delle risorse. |
SMALTOLUNGO | 36 | Viene visualizzato se il nome del file è troppo lungo. |
ENOLCK | 37 | Viene visualizzato se non sono disponibili serrature. |
ENOSI | 38 | Viene visualizzato se la funzione non è implementata. |
ENOTEMPTÀ | 39 | Viene visualizzato se la directory non è vuota. |
ELOOP | 40 | Viene visualizzato se sono presenti troppi livelli di collegamenti simbolici. |
ENOMSG | 42 | Viene visualizzato se non è presente alcun messaggio del tipo desiderato. |
EIDRM | 43 | Viene visualizzato se l'identificatore viene rimosso. |
ECHRNG | 44 | Viene visualizzato se il numero del canale è fuori range. |
EL2NSINC | Quattro cinque | Viene visualizzato se il livello 2 non è sincronizzato. |
EL3HLT | 46 | Viene visualizzato se il Livello 3 è interrotto. |
EL3RST | 47 | Viene visualizzato se viene ripristinato il Livello 3. |
ELNRNG | 48 | Viene visualizzato se il numero di collegamento è fuori intervallo. |
EUNATCH | 49 | Viene visualizzato se il driver del protocollo non è collegato. |
ENOCSI | cinquanta | Viene visualizzato se non è disponibile alcuna struttura CSI. |
EL2HLT | 51 | Viene visualizzato se il Livello 2 è interrotto. |
È STATO | 52 | Viene visualizzato in caso di scambio non valido. |
EBADR | 53 | Viene visualizzato in caso di descrittore di richiesta non valido. |
COMPLETO | 54 | Viene visualizzato se lo scambio è pieno. |
ENOANO | 55 | Viene visualizzato in caso di assenza di anodo. |
EBADRQC | 56 | Viene visualizzato per il codice di richiesta non valido. |
EBADSLT | 57 | Viene visualizzato per lo slot non valido. |
EBFONT | 59 | Viene visualizzato se è presente un formato file di font errato. |
UNILATERALE | 60 | Viene visualizzato se il dispositivo non è uno stream. |
ENODATA | 61 | Viene visualizzato se non ci sono dati disponibili. |
TEMPO | 62 | Viene visualizzato nel caso in cui il timer sia scaduto. |
ENOSR | 63 | Viene visualizzato in caso di risorse esaurite. |
ENONET | 64 | Viene visualizzato se la macchina non è in rete. |
ENOPKG | 65 | Viene visualizzato se il pacchetto non è installato. |
EREMOTA | 66 | Viene visualizzato se l'oggetto è remoto. |
ENOLINK | 67 | Viene visualizzato se il collegamento è stato interrotto. |
EADV | 68 | Viene visualizzato per errore pubblicitario. |
ESRMNT | 69 | Viene visualizzato per l'errore Srmount. |
ECOMM | 70 | Viene visualizzato se si verifica un errore di comunicazione durante l'invio. |
EPROTO | 71 | Viene visualizzato per errore di protocollo. |
EMULTIHOP | 72 | Viene visualizzato per i tentativi Multihop. |
EDOTDOT | 73 | Viene visualizzato per l'errore specifico di RFS. |
EBADMSG | 74 | Viene visualizzato per Messaggio errato. |
EOVERFLOW | 75 | Viene visualizzato se il valore è troppo grande per il tipo di dati definito. |
ENOTUNIQ | 76 | Viene visualizzato se il nome non è univoco sulla rete. |
EBADFD | 77 | Viene visualizzato se il descrittore del file è in cattivo stato. |
EREMCHG | 78 | Viene visualizzato se l'indirizzo remoto viene modificato. |
ELIBAC | 79 | Viene visualizzato se non è possibile accedere a una libreria condivisa necessaria. |
ELIBBAD | 80 | Viene visualizzato in caso di accesso a una libreria condivisa danneggiata. |
ELIBSCN | 81 | Viene visualizzato se la sezione .lib in a.out è danneggiata. |
ELIBMAX | 82 | Viene visualizzato se stiamo tentando di collegarci a troppe librerie condivise. |
ELIBEXEC | 83 | Viene visualizzato se non è possibile eseguire direttamente una libreria condivisa. |
EILSEQ | 84 | Viene visualizzato per un carattere multibyte o wide non valido o incompleto |
EREINIZIA | 85 | Viene visualizzato per informare che la chiamata di sistema interrotta deve essere riavviata. |
ESTRAPIPE | 86 | Viene visualizzato se si verifica un errore nel pipe dei flussi. |
EUSERS | 87 | Viene visualizzato da troppi utenti. |
ENOTSOCK | 88 | Viene visualizzato per il funzionamento del socket su dispositivi non socket. |
EDESTADDRREQ | 89 | Viene visualizzato se è richiesto l'indirizzo di destinazione. |
EMSGSIZE | 90 | Viene visualizzato se il messaggio è troppo lungo. |
EPROTOTIPO | 91 | Viene visualizzato se il protocollo è di tipo errato per il socket. |
ENOPROTOOPT | 92 | Viene visualizzato se il protocollo non è disponibile. |
SUPPORTO EPROTONOS | 93 | Viene visualizzato se il protocollo non è supportato. |
ESOCKTNOSUPPORT | 94 | Viene visualizzato se il tipo di socket non è supportato. |
EOPNOTSUPP | 95 | Viene visualizzato se l'operazione non è supportata. |
SUPPORTO EPFNOS | 96 | Viene visualizzato se la famiglia di protocolli non è supportata. |
SUPPORTO EAFNOS | 97 | Viene visualizzato se la famiglia di indirizzi non è supportata dal protocollo. |
EADDRINUS | 98 | Viene visualizzato se l'indirizzo è già in uso. |
EADDRNOTAVAIL | 99 | Viene visualizzato se il sistema non riesce ad assegnare l'indirizzo richiesto. |
ENETDOWN | 100 | Viene visualizzato se la rete non è disponibile. |
ENETUNREACH | 101 | Viene visualizzato se la rete non è raggiungibile. |
ENETRESET | 102 | Viene visualizzato se la rete ha interrotto la connessione al ripristino. |
ECONNABORTO | 103 | Viene visualizzato se il software ha causato l'interruzione della connessione. |
ECONNRESET | 104 | Viene visualizzato se la connessione viene ripristinata dal peer. |
ENOBUFS | 105 | Viene visualizzato se non è disponibile spazio nel buffer. |
ESKON | 106 | Viene visualizzato se l'endpoint di trasporto è già connesso. |
ENOTCONN | 107 | Viene visualizzato se l'endpoint di trasporto non è connesso. |
SPEGNIMENTO | 108 | Viene visualizzato se il sistema non può inviare dopo l'arresto dell'endpoint di trasporto. |
ETOOMANYREF | 109 | Viene visualizzato se ci sono troppi riferimenti: impossibile unire. |
TEMPO ESAURITO | 110 | Viene visualizzato se la connessione è scaduta. |
ECONNREFUSED | 111 | Viene visualizzato se la connessione viene rifiutata. |
EHOSTDOWN | 112 | Viene visualizzato se l'Host è inattivo. |
EOSTUNREACH | 113 | Viene visualizzato se non è presente alcun percorso verso l'host. |
GIÀ | 114 | Viene visualizzato se l'operazione è già in corso. |
OGNI PROGRESSO | 115 | Viene visualizzato se l'operazione è in corso. |
CLIC | 116 | Viene visualizzato per l'handle del file non aggiornato. |
EUCLEAN | 117 | Viene visualizzato se la struttura necessita di pulizia. |
UNIFORME | 118 | Viene visualizzato per un file di tipo non denominato XENIX. |
ENAVAIL | 119 | Viene visualizzato se non sono disponibili semafori XENIX. |
EISNAM | 120 | Viene visualizzato se è presente un file di tipo denominato. |
EREMOZIO | 121 | Viene visualizzato per errore I/O remoto. |
EDQUOT | 122 | Viene visualizzato se viene superata la quota del disco. |
ENOMEDIO | 123 | Viene visualizzato se non è stato trovato alcun supporto. |
TIPO MEDIO | 124 | Viene visualizzato se è presente un tipo di supporto errato. |
ECANCELLATO | 125 | Viene visualizzato se l'operazione viene annullata. |
ENOKEY | 126 | Viene visualizzato se la chiave richiesta non è disponibile. |
EKEYSCADUTA | 127 | Viene visualizzato se la chiave è scaduta. |
EKEYREVOCATO | 128 | Viene visualizzato se la chiave è stata revocata. |
EKEYREJECTED | 129 | Viene visualizzato se la chiave è stata rifiutata dal servizio. |
EOWNERDEAD | 130 | Viene visualizzato se il proprietario è morto. |
ENOTRERECUPERABILE | 131 | Viene visualizzato per uno stato non recuperabile. |
ERFKILL | 132 | Viene visualizzato se l'operazione non è possibile a causa di RF-kill. |
EHWVELENO | 133 | Viene visualizzato se la pagina di memoria presenta un errore hardware. |