errno, _doserrno, _sys_errlist, y _sys_nerr

Estas variables globales contienen códigos de error utilizados por perror y strerror funciona para imprimir mensajes de error.Las versiones funcionales más seguras enumeradas en esta tabla se deben usar en lugar de la variable global.

variable global

equivalentes funcionales

_doserrno

_get_doserrno, _set_doserrno

_errno

_get_errno, _set_errno

estas variables se declaran en STDLIB.H como

extern int _doserrno; 
extern int errno; 
extern char *_sys_errlist[ ];
extern int _sys_nerr;

Comentarios

errno y _errno conectados a la misma variable.errno es definido con el código #define errno (*_errno())

errno se establece en un error en una llamada al nivel.Dado que errno contiene el valor de la última llamada que lo establece, este valor puede cambiar completan correctamente llamadas.Compruebe siempre errno inmediatamente antes y después de una llamada que puede establecerlo.

En un error, errno no se establece necesariamente en el mismo valor que el código de error devuelto por una llamada al sistema.Para las operaciones de E/S, utilice _doserrno de tener acceso a los equivalentes del código de error del sistema operativo de los códigos de errno .para la mayoría de las operaciones de non-I/O el valor de _doserrno es indefinido.

Cada valor de errno es asociado con un mensaje de error que se puede imprimir mediante perror o almacenar en una cadena mediante strerror.perror y strerror utilizan la matriz y _sys_nerr, el número de _sys_errlist de elementos en _sys_errlist, para procesar la información de error.

Las rutinas matemáticas de biblioteca establecen errno llamando a _matherr.Para controlar los errores de matemáticas de manera diferente, escriba poseen la rutina de la descripción de la referencia de _matherr y el nombre _matherr.

Todos los valores de errno , definido como constantes predefinidas en ERRNO.H, son UNIX-compatible y se enumeran.Sólo ERANGE, EILSEQ y EDOM se especifican en el estándar ANSI.

Constante

Mensaje de error del sistema

Valor

EPERM

operación no permitida

1

ENOENT

Dicho archivo o directorio

2

ESRCH

Dichos proceso

3

EINTR

función interrumpida

4

EIO

Error de E/S

5

ENXIO

Dicho dispositivo o dirección

6

E2BIG

Lista de argumentos demasiado largo

7

ENOEXEC

Error de formato exec

8

EBADF

número de archivo incorrecto

9

ECHILD

Los procesos de generación

10

EAGAIN

No más de procesos o memoria insuficiente o nivel de anidamiento máximo de acceso

11

ENOMEM

Memoria insuficiente

12

EACCES

permiso denegado

13

EFAULT

Dirección errónea

14

EBUSY

Dispositivo o recurso No disponibles

16

EEXIST

el archivo existe

17

EXDEV

Enlace a otro dispositivo

18

ENODEV

Dicho dispositivo

19

ENOTDIR

no un directorio

20

EISDIR

es un directorio

21

EINVAL

Argumento no válido

22

ENFILE

Demasiados archivos abiertos en el sistema

23

EMFILE

Demasiados archivos abiertos

24

ENOTTY

Operación de control de E/S incorrecta

25

EFBIG

archivo demasiado grande

27

ENOSPC

Ningún espacio está en el dispositivo

28

ESPIPE

Búsqueda no válida

29

EROFS

Sistema de archivos de sólo lectura

30

EMLINK

demasiados vínculos

31

EPIPE

Canalización rota

32

EDOM

Argumento de matemáticas

33

ERANGE

resultado demasiado grande

34

EDEADLK

El interbloqueo de recursos aparecería

36

EDEADLOCK

Igual que EDEADLK para la compatibilidad con varias versiones anteriores de Microsoft C

36

ENAMETOOLONG

Nombre de archivo demasiado largo

38

ENOLCK

Ningún bloqueo disponibles

39

ENOSYS

Función no compatible

40

ENOTEMPTY

directorio no vacío

41

EILSEQ

Secuencia no válida de byte

42

STRUNCATE

La cadena aparece truncado

80

Vea también

Referencia

Variables globales

constantes de errno

perror

strerror

_get_doserrno

_set_doserrno

_get_errno

_set_errno