Os códigos de erro do Linux são aqueles exibidos se ocorrer um erro no sistema durante o trabalho ou uso de um programa. Os erros podem ser reconhecidos com a ajuda de códigos de erro. Os códigos de erro nos ajudam a reconhecer a origem do erro.
Se estivermos trabalhando em um sistema Linux, é óbvio que podemos encontrar erros. Alguns erros podem ser pequenos e não levar à interrupção do programa. Mas pode haver alguns erros que podem fazer com que um sistema ou programa pare de responder. Esses erros podem levar à perda de dados ou impedir a conclusão do programa. Principalmente os erros são exibidos na forma de códigos ou mensagens.
Nesta seção, veremos erros na programação C e uma lista de possíveis erros na Linux sistema.
Erros Linux na programação C
Um programador qualificado deve saber como lidar com os erros. A linguagem de programação C não fornece suporte direto para tratamento de erros. Temos que detectar a origem do erro e lidar com ele. Na linguagem C, os valores de retorno exibem a falha ou o sucesso. Se uma função no programa C falhar, devemos tratar o erro adequadamente; caso contrário, ele registra os últimos erros em um arquivo de log.
Ao executar os programas C, podemos notar alguns números de erro como 'Erro no is: 17'. Aqui, o erro nº 17 significa que o arquivo já existe. Cada número de erro tem algum significado.
A linguagem C suporta uma variável 'erro .' Ao usar esta variável de número de erro, podemos usar algumas funções de tratamento de erros para tratá-la adequadamente.
Para usar o número de erro da variável externa, temos que incluir um arquivo de cabeçalho 'errno.h.' O arquivo de cabeçalho é usado para definir a variável 'errno'. A variável errno é definida pelas chamadas do sistema e funções da biblioteca na ocorrência do erro. Existem duas funções importantes no Linguagem de programação C lidar com erros; erro e Estrerror . A função perror é usada para imprimir a descrição do erro e a função sterror retorna uma string com o código de erro.
Vamos exibir a lista de códigos de erro usando errno.
Linux errado
O utilitário errno é usado para procurar códigos errno, nomes de macros e as descrições correspondentes. Por exemplo, se fornecermos ENOENT em um sistema Linux, ele exibirá o código 2 e a descrição ' Não existe tal arquivo ou diretório .' Se fornecermos o código 2, ele exibirá o ENOENT e sua descrição .
Se o utilitário errno não estiver instalado em nossa máquina, ele exibirá o erro da seguinte forma:
Para instalá-lo, execute o comando abaixo:
sudo apt install moreutils
Ao executar o comando acima, o pacote moreutils é instalado em nossa máquina que contém o utilitário errno.
Exibir a lista de códigos de erro
Para exibir a lista dos códigos de erro, execute o comando da seguinte forma:
errno -l
O comando acima exibirá a lista de códigos de erro do RedHat. Considere a saída abaixo:
Exibir as informações de um número de erro
Para exibir as informações de um número de erro específico, execute o comando da seguinte forma:
errno 2
O comando acima exibirá a descrição do erro número 2. Considere a saída abaixo:
Exibir as informações de um nome de erro
Para exibir as informações de um nome de erro específico, execute o comando errno, seguido do nome do erro. Por exemplo, para exibir as informações de um nome de erro 'ESRCH ,' execute o comando da seguinte forma:
errno ESRCH
O comando acima exibirá as informações sobre o nome do erro especificado. Considere a saída abaixo:
Exibir o erro usando strings
Para exibir uma descrição de erro usando uma string da descrição, execute o comando da seguinte forma:
errno -s permission
O comando acima exibirá os erros cuja descrição contém permissão de string. Considere a saída abaixo:
Lista de erros do sistema Linux
A seguir está uma lista parcial de possíveis erros do sistema Linux:
| Erro de código | erro não | Descrição |
|---|---|---|
| Superior | 1 | É exibido se a operação não for permitida. |
| ENOENTE | 2 | Ele é exibido se esse arquivo ou diretório não existir. |
| ESCRH | 3 | É exibido se tal processo não existir. |
| EINTR | 4 | É exibido para Chamada de sistema interrompida |
| EIO | 5 | É exibido para erro de entrada/saída. |
| ENXIO | 6 | É exibido se tal dispositivo ou endereço não existir. |
| E2BIG | 7 | É exibido se a lista de argumentos for muito longa. |
| ENOEXEC | 8 | É exibido se houver um erro de formato exec |
| EBADF | 9 | Ele é exibido em caso de descritor de arquivo incorreto. |
| ECHILD | 10 | É exibido se não houver nenhum processo filho. |
| NOVAMENTE | onze | É exibido se o recurso estiver temporariamente indisponível. |
| ENOMEMA | 12 | É exibido se o sistema não conseguir alocar memória. |
| EACCES | 13 | É exibido se a permissão for negada. |
| EFAULT | 14 | É exibido se houver um endereço incorreto. |
| ENOTBLK | quinze | É exibido se o dispositivo de bloqueio for necessário. |
| OCUPADO | 16 | É exibido se o dispositivo ou recurso estiver ocupado. |
| EXISTE | 17 | É exibido se o arquivo já existir. |
| DESV.EX | 18 | É exibido se houver link inválido entre dispositivos. |
| ENODEV | 19 | É exibido se tal dispositivo não existir. |
| ENOTDIR | vinte | É exibido se não houver um diretório. |
| EISDIR | vinte e um | É exibido se houver um diretório. |
| ESCOLHA ÚNICA | 22 | É exibido se houver um argumento inválido. |
| COLOCAR | 23 | É exibido se houver muitos arquivos abertos no sistema. |
| MORTO | 24 | É exibido se houver muitos arquivos abertos. |
| ENOTTY | 25 | É exibido se houver um ioctl inadequado para o dispositivo. |
| ETXTBSY | 26 | É exibido se o arquivo de texto estiver ocupado. |
| EFBIG | 27 | É exibido se o arquivo for muito grande. |
| ENOSPC | 28 | É exibido se não houver espaço no dispositivo. |
| ESPIPE | 29 | É exibido em caso de busca ilegal. |
| EROFS | 30 | Ele é exibido no caso de sistema de arquivos somente leitura. |
| EMLINK | 31 | Ele é exibido se houver muitos links. |
| EPIPÉ | 32 | É exibido em caso de tubo quebrado. |
| EDOM | 33 | É exibido se o argumento numérico estiver fora do domínio. |
| LARANJA | 3. 4 | É exibido se o resultado numérico estiver fora do intervalo. |
| EDEADLK | 35 | É exibido se o impasse de recursos for evitado. |
| ENAMETOOLONG | 36 | É exibido se o nome do arquivo for muito longo. |
| ENOLCK | 37 | É exibido se nenhum bloqueio estiver disponível. |
| ENOSYS | 38 | É exibido se a função não estiver implementada. |
| ENOTEMPTY | 39 | É exibido se o diretório não estiver vazio. |
| ELOOP | 40 | É exibido se houver muitos níveis de links simbólicos. |
| ENOMSG | 42 | É exibido se não houver nenhuma mensagem do tipo desejado. |
| EIDRM | 43 | É exibido se o identificador for removido. |
| ECHRNG | 44 | É exibido se o número do canal estiver fora do alcance. |
| EL2NSYNC | Quatro cinco | É exibido se o nível 2 não estiver sincronizado. |
| EL3HLT | 46 | É exibido se o Nível 3 for interrompido. |
| EL3RST | 47 | É exibido se o Nível 3 for redefinido. |
| ELNRNG | 48 | É exibido se o número do link estiver fora do intervalo. |
| EUNATCH | 49 | É exibido se o driver de protocolo não estiver conectado. |
| ENOCSI | cinquenta | É exibido se não houver estrutura CSI disponível. |
| EL2HLT | 51 | É exibido se o Nível 2 for interrompido. |
| TEM SIDO | 52 | É exibido em caso de troca inválida. |
| EBADR | 53 | É exibido em caso de descritor de solicitação inválido. |
| EXFULO | 54 | É exibido se a troca estiver cheia. |
| ENOANO | 55 | É exibido no caso de Sem ânodo. |
| EBADRQC | 56 | Ele é exibido para código de solicitação inválido. |
| EBADSLT | 57 | É exibido para slot inválido. |
| EBFONT | 59 | Ele é exibido se houver um formato de arquivo de fonte incorreto. |
| UNILATERAL | 60 | É exibido se o dispositivo não for um fluxo. |
| ENODADOS | 61 | É exibido se não houver dados disponíveis. |
| ÉTEMPO | 62 | É exibido caso o cronômetro tenha expirado. |
| ENOSR | 63 | Ele é exibido em caso de recursos fora dos fluxos. |
| ENONET | 64 | É exibido se a máquina não estiver na rede. |
| ENOPKG | 65 | É exibido se o pacote não estiver instalado. |
| EREMOTO | 66 | É exibido se o objeto for remoto. |
| ENOLINK | 67 | É exibido se o link foi cortado. |
| EADV | 68 | É exibido para erro de anúncio. |
| ESRMNT | 69 | É exibido para erro Srmount. |
| ECOMM | 70 | É exibido se houver erro de comunicação no envio. |
| EPROTO | 71 | É exibido para erro de protocolo. |
| EMULTIHOP | 72 | Ele é exibido para tentativas de Multihop. |
| EDOTDOT | 73 | Ele é exibido para erros específicos do RFS. |
| EBADMSG | 74 | É exibido para Mensagem ruim. |
| EOVERFLOW | 75 | É exibido se o valor for muito grande para o tipo de dados definido. |
| ENOTUNIQ | 76 | É exibido se o nome não for exclusivo na rede. |
| EBADFD | 77 | É exibido se o descritor de arquivo estiver em mau estado. |
| EREMCHG | 78 | É exibido se o endereço remoto for alterado. |
| ELIBACC | 79 | É exibido se não conseguirmos acessar uma biblioteca compartilhada necessária. |
| ELIBBAD | 80 | Ele é exibido no caso de acesso a uma biblioteca compartilhada corrompida. |
| ELIBSCN | 81 | É exibido se houver uma seção .lib em a.out corrompida. |
| ELIBMAX | 82 | Ele é exibido se estivermos tentando vincular muitas bibliotecas compartilhadas. |
| ELIBEXEC | 83 | É exibido se não pudermos executar uma biblioteca compartilhada diretamente. |
| EILSEQ | 84 | É exibido para um caractere largo ou multibyte inválido ou incompleto |
| ERESTART | 85 | É exibido para informar que a chamada do sistema interrompida deve ser reiniciada. |
| ESTRPIPE | 86 | É exibido se houver erro no pipe de fluxos. |
| EUSERS | 87 | Ele é exibido para muitos usuários. |
| ENOTSOCK | 88 | É exibido para operação de soquete em não soquete. |
| EDESTADDRREQ | 89 | É exibido se o endereço de destino for necessário. |
| EMSGSIZE | 90 | É exibido se a mensagem for muito longa. |
| EPROTÓTIPO | 91 | É exibido se o protocolo for do tipo errado para soquete. |
| ENOPROTOOPTO | 92 | É exibido se o protocolo não estiver disponível. |
| EPROTONOSUPPORT | 93 | É exibido se o protocolo não for suportado. |
| ESOCKTNOSUPPORT | 94 | É exibido se o tipo de soquete não for compatível. |
| EOPNOTSUPP | 95 | É exibido se a operação não for suportada. |
| SUPORTE EPFNOS | 96 | É exibido se a família de protocolos não for suportada. |
| EAFNOSUPPORT | 97 | É exibido se a família de endereços não for suportada pelo protocolo. |
| EADDRINUS | 98 | É exibido se o endereço já estiver em uso. |
| EADDRNOTAVAIL | 99 | É exibido se o sistema não puder atribuir o endereço solicitado. |
| ENETDOWN | 100 | É exibido se a rede estiver inoperante. |
| ENETUNREACH | 101 | É exibido se a rede estiver inacessível. |
| ENETRESET | 102 | É exibido se a rede tiver perdido a conexão na redefinição. |
| ECONABORTADO | 103 | É exibido se o software causou a interrupção da conexão. |
| ECONNRESET | 104 | É exibido se a conexão for redefinida pelo peer. |
| ENOBUFS | 105 | É exibido se não houver espaço de buffer disponível. |
| ESCON | 106 | É exibido se o terminal de transporte já estiver conectado. |
| ENOTCONN | 107 | É exibido se o terminal de transporte não estiver conectado. |
| DESLIGAR | 108 | Ele será exibido se o sistema não puder enviar após o encerramento do terminal de transporte. |
| ETOOMANYREFS | 109 | É exibido se houver muitas referências: não é possível emendar. |
| ETIMEDOUT | 110 | É exibido se a conexão expirou. |
| ECONNREGUSADO | 111 | É exibido se a conexão for recusada. |
| EHOSTDOWN | 112 | É exibido se o Host estiver inativo. |
| EHOSTUNREACH | 113 | É exibido se não houver rota para o host. |
| JÁ | 114 | É exibido se a operação já estiver em andamento. |
| CADA PROGRESSO | 115 | É exibido se a operação estiver em andamento. |
| ESTALE | 116 | Ele é exibido para identificador de arquivo obsoleto. |
| EUCLEAN | 117 | É exibido se a estrutura necessita de limpeza. |
| UNIFORME | 118 | Ele não é exibido para um arquivo de tipo nomeado XENIX. |
| ENVIAR | 119 | É exibido se não houver semáforos XENIX disponíveis. |
| EISNAM | 120 | É exibido se houver um arquivo de tipo nomeado. |
| EREMÓCIO | 121 | É exibido para erro de E/S remota. |
| EDQUOT | 122 | É exibido se a cota do disco for excedida. |
| ENÔMÉDIO | 123 | É exibido se nenhuma mídia for encontrada. |
| TIPO DE MÉDIO | 124 | É exibido se houver um tipo de mídia incorreto. |
| CANCELADO | 125 | É exibido se a operação for cancelada. |
| ENOKEY | 126 | É exibido se a chave necessária não estiver disponível. |
| EKEYEXPIRADO | 127 | É exibido se a chave expirou. |
| EKEYREVOGADO | 128 | É exibido se a chave foi revogada. |
| EKEYREJEITADO | 129 | É exibido se a chave foi rejeitada pelo serviço. |
| EOWNERDEAD | 130 | É exibido se o proprietário morreu. |
| ENOTRECOVERÁVEL | 131 | Ele é exibido sem estado recuperável. |
| ERFKILL | 132 | É exibido se a operação não for possível devido ao RF-kill. |
| EHWPOISON | 133 | É exibido se a página de memória apresentar erro de hardware. |