Ferramentas do usuário

Ferramentas do site


errno

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.


errno [2023/09/12 16:14] (atual) – criada - edição externa 127.0.0.1
Linha 1: Linha 1:
 +====== Tratamento de Erros ======
 +A maioria das funções devolve somente uma indicação de que houve erro em sua execução, seja através de um valor negativo, seja através de um ponteiro nulo. 
 +
 +O erro ocorrido na função é armazenado na variável **errno**, definida internamente no sistema e disponibilizada no programa através da colocação do arquivo errno.h na compilação do programa. Dentro deste arquivo //header// também são definidas as constantes mnemônicas dos possíveis erros que podem acontecer nas funções. 
 +
 +Em caso de se necessitar testar um erro específico, sugere-se sempre usar este mnemônico em lugar do número, pois assim o sistema ficará mais portável e imune às mudanças futuras de versões de Sistema Operacional.
 +
 +Um fator importante de ser citado é que as funções não zeram o valor da variável **errno** caso não ocorra erro nas funções. Isto obriga ao programador usar a variável **errno** somente depois de ter verificado se a função realmente retornou erro.
 +
 +<code c>
 +#include <stdio.h>
 +#include <errno.h>
 +#include <fcntl.h>
 +
 +int main (void)
 +{
 +   int iFileDescriptor;
 +
 +   fprintf(stderr, "\nAbrindo um arquivo que nao existe\n");
 +   iFileDescriptor = open("arquivo_nao_existe",O_RDONLY);
 +
 +   if (iFileDescriptor < 0)
 +   {
 +      fprintf(stderr, "Codigo de Erro: %d\n", errno); /* utilizando a variável errno para mostrar o código do erro. */
 +   }
 +
 +   fprintf(stderr, "\nAbrindo um arquivo que existe\n");
 +   iFileDescriptor = open("arquivo_existe",O_RDONLY);
 +
 +   fprintf(stderr, "Codigo de Erro: %d\n", errno); /* Para utilizar a variável errno é necessário que tenha acontecido algum erro, 
 +                                              pois a variável continua com o valor do último erro ocorrido. */
 +   return 0;
 +}
 +</code>
 +
 +===== Outras Funções =====
 +  * [[strerror]]
 +  * [[perror]]
 +
 +
  
errno.txt · Última modificação: 2023/09/12 16:14 por 127.0.0.1