errno, _doserrno, _sys_errlist e _sys_nerr

Essas variáveis global mantêm códigos de erro usados pelo perror and strError funções para imprimir as mensagens de erro.As versões funcionais mais seguras listadas nesta tabela deve ser usada no lugar de sua variável global.

Variável global

Equivalentes funcionais

_doserrno

_get_doserrno, _set_doserrno

_errno

_get_errno, _set_errno

Essas variáveis são declaradas em STDLIB.H sistema autônomo

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

Comentários

errno é conjunto em um erro em uma telefonar de nível de sistema. Porque errno mantém o valor para a última telefonar que conjunto, esse valor pode ser alterado pelo sucesso telefonars. Sempre verifique errno imediatamente antes e após uma telefonar pode conjunto-lo.

Em um erro, errno não necessariamente está definido para o mesmo valor sistema autônomo o código de erro retornado por uma telefonar do sistema. Para operações de E/s, use _doserrno para acessar os equivalentes do código de erro do sistema operacional de errno códigos. Para a maioria das operações não E/S o valor de _doserrno não está definida.

Cada errno valor está associado a uma mensagem de erro pode ser impresso com perror ou está armazenado em uma seqüência de caracteres com strerror. perror e strerror Use o _sys_errlist matriz e _sys_nerr, o número de elementos _sys_errlist, para processar informações de erro.

De conjunto de rotinas da biblioteca de matemáticaerrno chamando _matherr.Para manipular erros de matemática diferente, escrever sua própria rotina de acordo com o _matherr Descrição de referência e nomeie-o _matherr.

All errno valores, definidos sistema autônomo constantes predefinidas no ERRNO.H, são compatível com o UNIX e estão listados abaixo. Apenas ERANGE, EILSEQ e EDOM são especificados no ANSI padrão.

Constante

Mensagem de erro do sistema

Valor

EPERM

Operação não permitida

1

ENOENT

Não existe tal arquivo ou diretório

2

ESRCH

Processo inexistente

3

EINTR

Função interrompida

4

EIO

Erro de E/s

5

ENXIO

Não existe tal dispositivo ou endereço

6

E2BIG

Lista de argumentos muito longa

7

ENOEXEC

Erro de formato de EXEC

8

EBADF

Número de arquivo incorreto

9

ECHILD

Nenhum processo gerado

10

EAGAIN

Não há mais processos ou insuficiente nível de aninhamento de memória ou máximo alcançado

11

ENOMEM

Não há memória suficiente

12

EACCES

Permissão negada

13

EFAULT

Endereço incorreto

14

EBUSY

Dispositivo ou recurso ocupado

16

EEXIST

O arquivo existe

17

EXDEV

Link de entre dispositivos

18

ENODEV

Dispositivo inexistente

19

ENOTDIR

Não é um diretório

20

EISDIR

É um diretório

21

EINVAL

Argumento inválido

22

ENFILE

Muitos arquivos em aberto no sistema

23

EMFILE

Muitos arquivos abertos

24

ENOTTY

Operação de controle de E/s inadequada

25

EFBIG

Arquivo muito grande

27

ENOSPC

Mais espaço no dispositivo

28

ESPIPE

Busca inválido

29

EROFS

Sistema de arquivos somente leitura

30

EMLINK

Número excessivo de links

31

EPIPE

Pipe interrompido

32

EDOM

Argumento matemático

33

ERANGE

Resultado muito grande

34

EDEADLK

Ocorreria um deadlock de recursos

36

EDEADLOCK

Mesmo que EDEADLK para compatibilidade com versões mais antigas do Microsoft C

36

ENAMETOOLONG

Nome do arquivo muito longo

38

ENOLCK

Não há bloqueios disponível

39

ENOSYS

Função sem suporte

40

ENOTEMPTY

Diretório não está vazio

41

EILSEQ

sequência de byte ilegal

42

STRUNCATE

Seqüência de caracteres foi truncada

80

Consulte também

Referência

Variáveis global

Constantes errno

perror

strError

_get_doserrno

_set_doserrno

_get_errno

_set_errno