Espacios de nombres
Variantes
Acciones

errno

De cppreference.com
< c‎ | error
 
 
Gestión de errores
Los códigos de error
Original:
Error codes
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Los códigos de error
errno
Las afirmaciones
Original:
Assertions
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
 
Definido en la cabecera <errno.h>
#define errno /* definido en la implementación */

errno es una macro de preprocesador que se expande a un thread-local (desde C11) modificable lvalue de tipo int. Varias funciones de biblioteca estándar indican errores escribiendo números enteros positivos a errno. Normalmente, el valor de errno se ajusta a uno de los códigos de error listados en <errno.h> como constantes de macro que comienzan con la letra E seguida de letras mayúsculas o dígitos.

El valor de errno es 0 al inicio del programa, y aunque las funciones de biblioteca pueden escribir números enteros positivos en errno independientemente de que se haya producido un error, las funciones de biblioteca nunca almacenan 0 en errno.

Las funciones de biblioteca perror y strerror pueden utilizarse para obtener descripciones textuales de las condiciones de error que corresponden al valor actual errno.

[editar] Ejemplo

#include <stdio.h>
#include <math.h>
#include <errno.h>
 
void show_errno(void)
{
    if(errno==EDOM)   printf("un error en el dominio");
    if(errno==EILSEQ) printf("una secuencia ilegal");    
    if(errno==ERANGE) printf("un error de polo o de alcance");
    if(errno==0)      printf("ningún error");
    printf(" ha ocurrido\n");
}
 
int main(void)
{
    printf("MATH_ERRNO %s\n", math_errhandling & MATH_ERRNO ? "se ha fijado" : "no se ha fijado");
 
    errno = 0;
    1.0/0.0;
    show_errno();
 
    errno = 0;
    acos(+1.1);
    show_errno();
 
    errno = 0;
    log(0.0);
    show_errno();
 
    errno = 0;
    sin(0.0);
    show_errno();
}

Salida:

MATH_ERRNO se ha fijado
un error de polo o de alcance ha ocurrido
un error en el dominio ha ocurrido
un error de polo o de alcance ha ocurrido
ningún error ha ocurrido

[editar] Referencias

  • Standard C11 (ISO/IEC 9899:2011):
  • 7.5 Errors <errno.h> (p: 205)
  • K.3.1.3 Use of errno (p: 584)
  • K.3.2 Errors <errno.h> (p: 585)
  • Standard C99 (ISO/IEC 9899:1999):
  • 7.5 Errors <errno.h> (p: 186)
  • Standard C89/C90 (ISO/IEC 9899:1990):
  • 4.1.3 Errors <errno.h>

[editar] Véase también

macros para condiciones de error estándar compatibles con POSIX
(macro de constante) [editar]
muestra una cadena de caracteres correspondiente al error actual a stderr
(función) [editar]
retorna una versión de texto de un código de error dado
(función) [editar]
define el mecanismo de manejo de errores utilizado por las funciones matemáticas comunes
(macro de constante) [editar]