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.

#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;
}

Outras Funções

errno.txt · Última modificação: 2008/04/24 18:14 por laureano
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0