常
errno
數是針對各種錯誤狀況指派給
errno
的值。
ERRNO.H
包含值的定義
errno
。 不過,並非所有 中指定的
ERRNO.H
定義都用於 32 位 Windows 作業系統。 中的
ERRNO.H
某些值會存在,以維持與 UNIX 系列作業系統的相容性。
errno
32 位 Windows 作業系統中的值是 UNIX 系統中值的
errno
子集。
此值
errno
不一定與 Windows 作業系統的系統呼叫所傳回的實際錯誤碼相同。 若要存取實際的作業系統錯誤碼,請使用
_doserrno
包含此值的 變數。
支援下列
errno
值:
EACCES
權限遭拒。 檔案的許可權設定不允許指定的存取。 嘗試以與檔案屬性不相容的方式存取檔案(或在某些情況下為目錄)。
例如,嘗試從未開啟的檔案讀取時,可能會發生錯誤。 或者,嘗試開啟現有的唯讀檔案以進行寫入,或開啟目錄,而不是檔案。 在 MS-DOS 作業系統 3.0 版和更新版本下,
EACCES
也可能表示鎖定或共用違規。
在嘗試對檔案或目錄進行重新命名,或是移除現有目錄時,也可能會發生該錯誤。
EAGAIN
沒有更多進程或沒有足夠的記憶體或達到巢狀層級上限。 嘗試建立新的進程失敗,因為沒有更多進程位置,或記憶體不足,或已達到巢狀層級上限。
EBADF
檔案編號錯誤。 有兩個可能的原因:1) 指定的檔案描述元不是有效的值或未參考開啟的檔案。 2) 嘗試寫入以唯讀存取方式開啟的檔案或裝置。
EBUSY
裝置或資源忙碌中。
ECHILD
沒有繁衍的處理序。
EDEADLK
會發生資源死結。
EDEADLOCK
與
EDEADLK
舊版 Microsoft C 版本的相容性相同。
數學引數。 數學函式的自變數不在函式的定義域中。
EEXIST
檔案存在。 嘗試建立已存在的檔案。 例如,和
_O_CREAT
_O_EXCL
旗標是在呼叫中
_open
指定,但具名檔案已經存在。
EFAULT
不正確的位址。
EFBIG
檔案太大。
EILSEQ
不合法的位元組序列(例如,在字串中
MBCS
)。
EINTR
中斷的函式。
EINVAL
無效引數。 為函式的其中一個引數提供無效的值。 例如,定位檔案指標時,為原點提供的值是在檔案開頭之前。
fseek
。
I/O 錯誤。
EISDIR
這是目錄。
EMFILE
開啟太多檔案。 沒有更多檔案描述項可用,因此已無法開啟更多檔案。
EMLINK
太多連結。
ENAMETOOLONG
檔名太長。
ENFILE
系統中開啟太多檔案。
ENODEV
沒有這類裝置。
ENOENT
無此檔案或目錄。 指定的檔案或目錄不存在或找不到。 每當指定的檔案不存在或路徑的元件未指定現有目錄時,就會發生此訊息。
ENOEXEC
Exec 格式錯誤。 嘗試執行不是可執行檔或具有無效可執行檔格式的檔案。
ENOLCK
沒有可用的鎖定。
ENOMEM
沒有足夠的記憶體可供嘗試的運算子使用。 例如,當記憶體不足而無法執行子進程,或無法滿足呼叫中的
_getcwd
配置要求時,可能會發生此訊息。
ENOSPC
裝置無剩餘空間。 裝置上已沒有空間可供寫入 (例如當磁碟已滿時)。
ENOSYS
不支援函式。
ENOTDIR
不是目錄。
ENOTEMPTY
目錄未清空。
ENOTTY
不適當的 I/O 控制作業。
ENXIO
沒有這類裝置或位址。
EPERM
不允許作業。
EPIPE
管線中斷。
ERANGE
結果太大。 針對數學函式的引數太大,導致結果部分或完全失去的精確度。 當自變數大於預期時,其他函式也會發生此錯誤(例如,當的
buffer
自變數
_getcwd
超過預期時)。
EROFS
唯讀檔案系統。
ESPIPE
搜尋無效。
ESRCH
沒有這類程式。
EXDEV
跨裝置連結。 嘗試將檔案移至不同的裝置(使用 函
rename
式)。
STRUNCATE
字串複製或串連導致截斷的字串。 請參閱
_TRUNCATE
。
為了與 POSIX 相容,支援下列值: