Descrição:
O arquivo de cabeçalhos <errno.h> fornece alguns macros de números
inteiros para reconhecer e relatar erros de execução através de códigos de erro, esses códigos são
fornecidos pelo próprio sistema operacional e retornados ao programa durante sua execução.
A variável errno recebe um valor inteiro referente ao erro obtido. Uma tabela de todos os erros pode
ser encontrada em errno.
Em um escopo de cálculos
matemáticos, os que mais ocorrem são:
-
EDOM (33): Um argumento viola o domínio dos valores suportados, ou seja, quando deixa de pertencer aos números reais. Geralmente sua compilação não é impedida, porém, o resultado “nan” (not a number) é mostrado.
-
ERANGE (34): O resultado da função está fora do intervalo dos valores válidos. Quando utilizado junto com a biblioteca <math.h>, os resultados “inf”e “-inf” são obtidos.
Funções:
//EXEMPLO ERRNO.h
#include <stdio.h>
#include <math.h>
#include <errno.h>
#include <string.h>
int main(){
printf("log(-1.0) = %f\n", log(-1.0));
printf("Erro de número %d obtido!\n", errno);
printf("Descrição do erro: %s\n\n", strerror(errno));
printf("log(0.0) = %f\n", log(0.0));
printf("Erro de número %d obtido!\n", errno);
printf("Descrição do erro: %s", strerror(errno));
return 0;
}
>clang-7 -pthread -lm -o main main.c
>./main
log(-1.0) = -nan
Erro de número 33 obtido!
Descrição do erro: Numerical argument out of domain
log(0.0) = -inf
Erro de número 34 obtido!
Descrição do erro: Numerical result out of range