errno
常數
語法
#include <errno.h>
備註
常 errno
數是針對各種錯誤狀況指派給 errno
的值。
ERRNO.H
包含值的定義 errno
。 不過,並非所有 中指定的 ERRNO.H
定義都用於 32 位 Windows 作業系統。 中的 ERRNO.H
某些值會存在,以維持與 UNIX 系列作業系統的相容性。 errno
32 位 Windows 作業系統中的值是 UNIX 系統中值的errno
子集。
此值 errno
不一定與 Windows 作業系統的系統呼叫所傳回的實際錯誤碼相同。 若要存取實際的作業系統錯誤碼,請使用 _doserrno
包含此值的 變數。
支援下列 errno
值:
常數 | 描述 | 值 |
---|---|---|
E2BIG |
引數清單太長。 | 7 |
EACCES |
權限遭拒。 檔案的許可權設定不允許指定的存取。 嘗試以與檔案屬性不相容的方式存取檔案(或在某些情況下為目錄)。 例如,嘗試從未開啟的檔案讀取時,可能會發生錯誤。 或者,嘗試開啟現有的唯讀檔案以進行寫入,或開啟目錄,而不是檔案。 在 MS-DOS 作業系統 3.0 版和更新版本下, EACCES 也可能表示鎖定或共用違規。在嘗試對檔案或目錄進行重新命名,或是移除現有目錄時,也可能會發生該錯誤。 |
13 |
EAGAIN |
沒有更多進程或沒有足夠的記憶體或達到巢狀層級上限。 嘗試建立新的進程失敗,因為沒有更多進程位置,或記憶體不足,或已達到巢狀層級上限。 | 11 |
EBADF |
檔案編號錯誤。 有兩個可能的原因:1) 指定的檔案描述元不是有效的值或未參考開啟的檔案。 2) 嘗試寫入以唯讀存取方式開啟的檔案或裝置。 | 9 |
EBUSY |
裝置或資源忙碌中。 | 16 |
ECHILD |
沒有繁衍的處理序。 | 10 |
EDEADLK |
會發生資源死結。 | 36 |
EDEADLOCK |
與 EDEADLK 舊版 Microsoft C 版本的相容性相同。 |
36 |
EDOM |
數學引數。 數學函式的自變數不在函式的定義域中。 | 33 |
EEXIST |
檔案存在。 嘗試建立已存在的檔案。 例如,和 _O_CREAT _O_EXCL 旗標是在呼叫中 _open 指定,但具名檔案已經存在。 |
17 |
EFAULT |
不正確的位址。 | 14 |
EFBIG |
檔案太大。 | 27 |
EILSEQ |
不合法的位元組序列(例如,在字串中 MBCS )。 |
42 |
EINTR |
中斷的函式。 | 4 |
EINVAL |
無效引數。 為函式的其中一個引數提供無效的值。 例如,定位檔案指標時,為原點提供的值是在檔案開頭之前。 fseek 。 |
22 |
EIO |
I/O 錯誤。 | 5 |
EISDIR |
這是目錄。 | 21 |
EMFILE |
開啟太多檔案。 沒有更多檔案描述項可用,因此已無法開啟更多檔案。 | 24 |
EMLINK |
太多連結。 | 31 |
ENAMETOOLONG |
檔名太長。 | 38 |
ENFILE |
系統中開啟太多檔案。 | 23 |
ENODEV |
沒有這類裝置。 | 19 |
ENOENT |
無此檔案或目錄。 指定的檔案或目錄不存在或找不到。 每當指定的檔案不存在或路徑的元件未指定現有目錄時,就會發生此訊息。 | 2 |
ENOEXEC |
Exec 格式錯誤。 嘗試執行不是可執行檔或具有無效可執行檔格式的檔案。 | 8 |
ENOLCK |
沒有可用的鎖定。 | 39 |
ENOMEM |
沒有足夠的記憶體可供嘗試的運算子使用。 例如,當記憶體不足而無法執行子進程,或無法滿足呼叫中的 _getcwd 配置要求時,可能會發生此訊息。 |
12 |
ENOSPC |
裝置無剩餘空間。 裝置上已沒有空間可供寫入 (例如當磁碟已滿時)。 | 28 |
ENOSYS |
不支援函式。 | 40 |
ENOTDIR |
不是目錄。 | 20 |
ENOTEMPTY |
目錄未清空。 | 41 |
ENOTTY |
不適當的 I/O 控制作業。 | 25 |
ENXIO |
沒有這類裝置或位址。 | 6 |
EPERM |
不允許作業。 | 1 |
EPIPE |
管線中斷。 | 32 |
ERANGE |
結果太大。 針對數學函式的引數太大,導致結果部分或完全失去的精確度。 當自變數大於預期時,其他函式也會發生此錯誤(例如,當的 buffer 自變數 _getcwd 超過預期時)。 |
34 |
EROFS |
唯讀檔案系統。 | 30 |
ESPIPE |
搜尋無效。 | 29 |
ESRCH |
沒有這類程式。 | 3 |
EXDEV |
跨裝置連結。 嘗試將檔案移至不同的裝置(使用 函 rename 式)。 |
18 |
STRUNCATE |
字串複製或串連導致截斷的字串。 請參閱 _TRUNCATE 。 |
80 |
為了與 POSIX 相容,支援下列值:
常數 | 描述 | 值 |
---|---|---|
EADDRINUSE |
使用中的位址。 | 100 |
EADDRNOTAVAIL |
位址無法使用。 | 101 |
EAFNOSUPPORT |
不支持位址系列。 | 102 |
EALREADY |
線上已在進行中。 | 103 |
EBADMSG |
不正確的訊息。 | 104 |
ECANCELED |
作業已取消。 | 105 |
ECONNABORTED |
連接已中止。 | 106 |
ECONNREFUSED |
線上遭到拒絕。 | 107 |
ECONNRESET |
線上重設。 | 108 |
EDESTADDRREQ |
需要目的地位址。 | 109 |
EHOSTUNREACH |
主機無法連線。 | 110 |
EIDRM |
已移除標識碼。 | 111 |
EINPROGRESS |
作業進行中。 | 112 |
EISCONN |
已連線。 | 113 |
ELOOP |
符號連結層級太多。 | 114 |
EMSGSIZE |
訊息大小。 | 115 |
ENETDOWN |
網路關閉。 | 116 |
ENETRESET |
網路重設。 | 117 |
ENETUNREACH |
網路無法連線。 | 118 |
ENOBUFS |
沒有緩衝區空間。 | 119 |
ENODATA |
沒有可用的訊息。 | 120 |
ENOLINK |
沒有連結。 | 121 |
ENOMSG |
沒有訊息。 | 122 |
ENOPROTOOPT |
沒有通訊協議選項。 | 123 |
ENOSR |
沒有數據流資源。 | 124 |
ENOSTR |
不是數據流。 | 125 |
ENOTCONN |
未連線。 | 126 |
ENOTRECOVERABLE |
狀態無法復原。 | 127 |
ENOTSOCK |
不是套接字。 | 128 |
ENOTSUP |
不支援。 | 129 |
EOPNOTSUPP |
作業不受支援。 | 130 |
EOTHER |
其他。 | 131 |
EOVERFLOW |
值太大。 | 132 |
EOWNERDEAD |
主人死了 | 133 |
EPROTO |
通訊協議錯誤。 | 134 |
EPROTONOSUPPORT |
不支援通訊協定。 | 135 |
EPROTOTYPE |
通訊協定類型錯誤。 | 136 |
ETIME |
數據流逾時。 | 137 |
ETIMEDOUT |
逾時。 | 138 |
ETXTBSY |
文字檔忙碌中。 | 139 |
EWOULDBLOCK |
作業會封鎖。 | 140 |