errno, _doserrno, _sys_errlist, and _sys_nerr

Basılı tutun hata kodlarını genel makro program yürütme ve görüntülemek için hata kodlarının dize eşdeğerlerine sırasında ayarlanır.

#define errno   (*_errno()) #define _doserrno   (*__doserrno()) #define _sys_errlist (__sys_errlist()) #define _sys_nerr (*__sys_nerr())

Notlar

errno ve _doserrno öğelerinin ikisi de program açılışında çalışma zamanı tarafından 0 olarak ayarlanır.errno sistem düzeyindeki bir çağrıdaki bir hatada ayarlanır.errno onu ayarlayan son çağrının değerini tuttuğundan, bu değer takip eden çağrılar tarafından değiştirilebilir.Bir hatadaki errno öğesini ayarlayan çalışma zamanı kitaplığı, takip eden errno öğesini temizlemez.Her zaman Temizle errno çağırarak _set_errno(0) hemen ayarladıktan ve hemen sonra arama denetleyin bir çağrı önce.

Bir hatada, errno öğesinin bir sistem çağrısı tarafından döndürülen hata koduyla aynı değere ayarlanması zorunlu değildir.G/ç işlemleri için _doserrno , işletim sistemi hata kodu eşdeğerlerine depolar errno kodları.Çoğu olmayan-ı/O işlemleri, değeri için _doserrno ayarlanmadı.

Her errno değeri bir hata iletisi ile ilişkili _sys_errlist , yazdırılabilir birini kullanarak perror işlevleri veya birini kullanarak bir dizesinde depolanan strerror veya strerror_s işlevleri.perror Ve strerror işlevleri kullanın _sys_errlist dizi ve _sys_nerr— öğe sayısı _sys_errlist— hata bilgilerini işlemek için.Doğrudan erişim _sys_errlist ve _sys_nerr kod güvenlik nedenleriyle kullanım dışı.Genel makro yerine, daha güvenli, işlevsel sürümlerini kullanmanızı aşağıda gösterildiği gibi öneririz:

Genel makro

İşlevsel Eşdeğerleri

_doserrno

_get_doserrno,_set_doserrno

errno

_get_errno, _set_errno

_sys_errlist, _sys_nerr

strerror_s, _strerror_s, _wcserror_s, __wcserror_s

Kitaplık matematik yordamları, _matherr öğesini çağırarak errno öğesini ayarlar.Matematik hatalarını farklı şekilde işlemek için kendi yordamınızı _matherr başvurusunun açıklamasına göre yazın ve _matherr şeklinde adlandırın.

Tüm errno değerleri aşağıdaki tabloda önceden tanımlanmış sabitler < errno.h > olarak ve UNIX uyumlu vardır.Yalnızca ERANGE, EILSEQ ve EDOM ISO C99 standardında belirtilmiştir.

Sabit

Sistem hatası iletisi

Değer

EPERM

İşleme izin verilmiyor

1

ENOENT

Böyle bir dosya ya da dizin yok

2

ESRCH

Böyle bir işlem yok

3

EINTR

Kesintiye uğramış işlev

4

EIO

G/Ç hatası

5

ENXIO

Böyle bir cihaz veya adres yok

6

E2BIG

Bağımsız değişken listesi çok uzun

7

ENOEXEC

Exec biçim hatası

8

EBADF

Hatalı dosya numarası

9

ECHILD

Üretilmiş işlem yok

10

EAGAIN

Daha fazla işlem yok veya bellek yetersiz ya da en fazla iç içe geçme düzeyine ulaşılmış

11

ENOMEM

Yeterli bellek yok

12

EACCES

İzin reddedildi

13

EFAULT

Hatalı adres

14

EBUSY

Cihaz veya kaynak meşgul

16

EEXIST

Dosya mevcut

17

EXDEV

Çapraz cihaz bağlantısı

18

ENODEV

Böyle bir cihaz yok

19

ENOTDIR

Bir dizin değil

20

EISDIR

Bir dizin

21

EINVAL

Geçersiz bağımsız değişken

22

ENFILE

Sistemde çok fazla dosya açık

23

EMFILE

Çok fazla dosya açık

24

ENOTTY

Uygun olmayan G/Ç denetimi işlemi

25

EFBIG

Dosya çok büyük

27

ENOSPC

Cihazda alan kalmadı

28

ESPIPE

Geçersiz arama

29

EROFS

Salt okunur dosya sistemi

30

EMLINK

Çok fazla bağlantı

31

EPIPE

Kesik kanal

32

EDOM

Matematik bağımsız değişkeni

33

ERANGE

Sonuç çok büyük

34

EDEADLK

Kaynak kilitlenmesi oluşabilir

36

EDEADLOCK

Önceki Microsoft C sürümleriyle uyumluluk için EDEADLK aynı

36

ENAMETOOLONG

Dosya adı çok uzun

38

ENOLCK

Kullanılabilir kilit yok

39

ENOSYS

İşlev desteklenmiyor

40

ENOTEMPTY

Dizin boş değil

41

EILSEQ

Geçersiz bayt dizisi

42

STRUNCATE

Dize kesildi

80

Gereksinimler

Genel makro

Gerekli başlık

İsteğe bağlı üstbilgi

errno

< errno.h > veya < stdlib.h > < cerrno > veya < cstdlib > (C++)

_doserrno, _sys_errlist, _sys_nerr

< stdlib.h > < cstdlib > (C++)

< errno.h >, < cerrno > (C++)

_doserrno, _sys_errlist, Ve _sys_nerr makro olan Microsoft uzantıları.Uyumluluk hakkında daha fazla bilgi için bkz. Uyumluluk.

Ayrıca bkz.

Başvuru

Global Değişkenler

errno Sabitleri

perror, _wperror

strerror, _strerror, _wcserror, __wcserror

strerror_s, _strerror_s, _wcserror_s, __wcserror_s

_get_doserrno

_set_doserrno

_get_errno

_set_errno