Condividi tramite


errno, _doserrno, _sys_errlist e _sys_nerr

Questi codici di errore di attività di variabili globali utilizzati da perror e strerror funzioni per la stampa dei messaggi di errore.Il più versioni funzionali sicure elencate nella tabella devono essere utilizzati al posto della variabile globale.

variabile globale

equivalenti funzionali

_doserrno

_get_doserrno, _set_doserrno

_errno

_get_errno, _set_errno

Queste variabili vengono dichiarate in STDLIB.H come

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

Note

errno e _errno si connettono alla stessa variabile.errno viene definito con il codice #define errno (*_errno())

errno è impostato su un errore in una chiamata a livello di sistema.Poiché errno utilizza il valore dell'ultima chiamata che lo imposta, questo valore può essere modificato completate le chiamate.sempre controllo errno immediatamente prima di e dopo una chiamata che possibile impostarla.

su un errore, errno non è necessariamente impostato sullo stesso valore del codice di errore restituito da una chiamata al sistema.Per le operazioni di I/O, utilizzare _doserrno per accedere agli equivalenti del sistema operativo di codice di errore errno codici.Per la maggior parte delle operazioni di non-I/O il valore di _doserrno è definito.

ciascuno errno il valore viene associato a un messaggio di errore di cui può essere stampato utilizzo perror o archiviato in una stringa tramite strerror.perror e strerror utilizzare _sys_errlist allineare e _sys_nerr, il numero di elementi in _sys_errlist, per elaborare informazioni sugli errori.

Routine matematiche di libreria impostate errno chiamando _matherr.Per gestire gli errori matematici in modo diverso, scrivere possiedono la routine come _matherr fare riferimento alla descrizione e denominarla _matherr.

tutti errno i valori, definiti come costanti predefinite in ERRNO.H, vengono UNIX-compatibili e sono elencati in.Solo ERANGE, EILSEQ e EDOM vengono specificati nello standard ANSI.

Costante

messaggio di errore di sistema

Valore

EPERM

Operazione non valida

1

ENOENT

Tale file o directory

2

ESRCH

nessun tali processo

3

EINTR

funzione interrotta

4

EIO

errore di I/O

5

ENXIO

Tale dispositivo o indirizzo

6

E2BIG

Elenco di argomenti troppo lungo

7

ENOEXEC

Errore di formato exec

8

EBADF

Numero errato di file

9

ECHILD

Nessun processi compilati

10

EAGAIN

Non più processi o memoria insufficiente o massimo del livello di annidamento raggiunto

11

ENOMEM

Memoria insufficiente

12

EACCES

autorizzazione negata

13

EFAULT

errato indirizzo

14

EBUSY

Dispositivo o una risorsa occupata

16

EEXIST

il file esiste

17

EXDEV

Collegamento di collegamento

18

ENODEV

Tale dispositivo

19

ENOTDIR

non una directory

20

EISDIR

è una directory

21

EINVAL

argomento non valido

22

ENFILE

Troppi file aperti nel sistema

23

EMFILE

troppi file aperti

24

ENOTTY

Operazione di controllo non corretta di I/O

25

EFBIG

file troppo grande

27

ENOSPC

Nessuno spazio a sinistra sul dispositivo

28

ESPIPE

ricerca non valida

29

EROFS

sistema di file di sola lettura

30

EMLINK

troppi collegamenti

31

EPIPE

Pipe interrotte

32

EDOM

Argomento matematico

33

ERANGE

risultato troppo grande

34

EDEADLK

Il deadlock di risorse si verificherà

36

EDEADLOCK

Equivalente a EDEADLK per compatibilità con le versioni precedenti di Microsoft C

36

ENAMETOOLONG

Nome file troppo lungo

38

ENOLCK

nessun blocchi disponibili

39

ENOSYS

funzione non supportata

40

ENOTEMPTY

directory non vuota

41

EILSEQ

Sequenza di byte non valida

42

STRUNCATE

la stringa è stata troncata

80

Vedere anche

Riferimenti

Variabili globali

costanti di errno

perror

strerror

_get_doserrno

_set_doserrno

_get_errno

_set_errno