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. |