Errno em c

Errno em c
C O idioma não permite diretamente o gerenciamento de erros, mas permite o acesso em um nível menor por meio de valores de retorno. No caso de imprecisão, a maioria de C ou talvez até as chamadas de função Linux produzem -1 ou void e defina o código de erro ERRNO. É uma constante universal que mostra quando uma chamada de função falhou. No arquivo de cabeçalho, você encontrará uma lista de diferentes códigos de erro. Como resultado, um desenvolvedor C pode examinar os valores fornecidos e, com base neles, tomar as medidas necessárias. Parece não haver problemas no programa se o resultado for 0. Neste artigo hoje, discutiremos o uso da variável "errno" para obter códigos de erro e mensagens em nosso ambiente Linux (i.e., Ubuntu 20.0.4 sistema.) Vamos começar com a abertura de uma concha terminal no Ubuntu 20.04 Sistema operacional Linux e instalação do compilador GCC de C.

Antes de avançar em direção à criação de um código C, precisamos de um arquivo C em nosso sistema Linux. Assim, estamos usando a instrução de toque para criar um. Este arquivo deve conter uma extensão "C" no final. Como você pode descobrir, construímos um arquivo chamado “Errno.C ”. O comando da lista foi usado para listar todos os arquivos e pastas do nosso diretório de trabalho atual no Linux. O arquivo C recém -fabricado “Errno.C ”também está listado aqui. Para criar código C no arquivo, devemos abri -lo em algum editor como um editor de texto, editor do VIM ou editor do GNU Nano. Então, estamos abrindo -o dentro do editor do GNU Nano com o uso do comando "nano" no shell. Este arquivo será aberto em um editor do tipo terminal.

Exemplo 01

Vamos começar com o exemplo inicial deste artigo. Digamos que você deseja abrir e ler os dados de um arquivo de texto específico que reside no mesmo diretório atual usando o arquivamento no código C. Para isso, devemos usar a biblioteca de saída de entrada padrão de um C em nosso código. Então, nós o incluímos na linha de abertura empregando a palavra -chave "#include".

Depois disso, precisamos usar o “errno.H ”Cabeçalho neste código C para que possamos utilizar a variável interna“ errno ”para obter o código e a mensagem de erro. A execução principal será iniciada a partir da função "main ()" do programa C. Nesse programa principal, usamos a variável "arquivo" para inicializar o descritor de arquivo "F" do tipo de ponteiro. Este descritor de arquivo foi usado para abrir o arquivo “Novo.txt ”em um formato somente leitura usando a função“ fopen ”do arquivamento em c. A declaração if-else está aqui para verificar se o arquivo foi aberto com sucesso ou não. A parte "se" da declaração verificará se o resultado retornado do descritor de arquivo é igual a 0 ou não. Se 0, então significa que o arquivo está faltando ou não aberto com sucesso. Assim, a instrução printf usará a variável "errno" para exibir o código de erro.

Por outro lado, a parte "else" será utilizada quando a condição não satisfaz. A instrução printf exibirá que a abertura é bem -sucedida.

Nós compilamos este código com o compilador "GCC" e depois o executamos com o "./a.OUT ”instrução. Esta execução de código retorna o código de erro número 2, onde nenhum arquivo foi encontrado.

Para remover esse erro, precisamos criar um novo arquivo de texto com a instrução "Touch" e adicionar alguns dados a ele com a instrução "Echo", como mostrado. A instrução "CAT" está mostrando que o arquivo contém os dados de texto recém -adicionados.

Agora, quando você compilar e executa o mesmo código no shell, ele executará a parte "else" e exibe a mensagem "bem -sucedida" (eu.e., O arquivo foi encontrado agora.)

Se você deseja exibir a mensagem de erro junto com seu código de erro, precisar. Para isso, você precisa usar a “string.H ”cabeçalho no código também. Então, adicionamos o cabeçalho e atualizamos o componente "se" da declaração "if-else". A chamada de função strerror () está processando o "errno" para obter a mensagem de erro pelo seu código de erro.

Quando seu arquivo estiver ausente, você será exibido com a mensagem de erro "nenhum arquivo ou diretório" no shell, como mostrado.

Exemplo 02

Vamos verificar o número do erro para outro exemplo de erro. Temos usado as bibliotecas padrão no programa e a função principal () contém a inicialização de uma variável "val" e a função para "checar", passando a variável "val". A função check () estaria usando a declaração "if-else" para verificar se o valor "val" é zero ou não e, portanto, o outro valor pode ser divisível por ele ou não. Como o valor "val" é 7, pode ser divisível por 8. Portanto, a parte "else" da função check () seria executada para calcular o resultado da divisão e exibi -lo no shell.

Após a compilação e execução, descobrimos que a divisão é possível. A parte else calculou e exibiu o valor da divisão entre 89 e valor "7" para variável "val".

Vamos atualizar o código novamente e adicionar 0 como um valor à variável "val" na função principal () para reverter os resultados. Então, atualizamos o valor "val" para 0, conforme indicado na imagem abaixo. O restante do código permaneceu intocado.

Depois de executar este código atualizado, temos o código de erro 0 e sua mensagem de erro.

Conclusão

Trata -se do uso da variável "errno" no artigo para obter os códigos de erro de diferentes exceções usando seu "errno.H ”cabeçalho. Além disso, discutimos o uso da função "strerror" para exibir a mensagem de erro junto com o número do código. Incorporamos duas instâncias neste guia para explicar melhor a ideia de errno.