errno 常數
#include <errno.h>
備註
Errno 的值是指派給常數 errno 在不同的錯誤條件的事件。
ERRNO。H 包含定義 errno 的值。 不過,並非所有 ERRNO 中指定的定義。32 位元 Windows 作業系統中,會使用 H。 有些 ERRNO 中的值。H 會顯示為了維持與作業系統 UNIX 系列項目。
Errno 在 32 位元 Windows 作業系統中的值是子集合中值的 errno XENIX 系統中。 因此, errno 值不一定相同,實際從 Windows 作業系統的系統呼叫所傳回的錯誤碼。 若要存取的實際作業系統錯誤代碼,請使用 _doserrno 變數,會包含此值。
下列 errno 值所支援:
ECHILD
沒有任何繁衍 (spawn) 的處理序。EAGAIN
沒有更多的處理程序。 若要建立新的處理序的嘗試失敗,因為有沒有更多的處理程序位置,或沒有足夠的記憶體,或已到達最大的巢狀層級。E2BIG
引數清單太長。EACCES
使用權限遭拒。 檔案的權限設定不允許指定的存取權。 此錯誤表示嘗試存取的檔案 (或是在某些情況下,目錄) 的方式也就是檔案的屬性不相容。例如,當嘗試讀取未開啟,若要開啟現有的唯讀檔案進行寫入,或開啟的檔案而不是目錄的檔案時,就會發生錯誤。 在 [MS-DOS 作業系統版本 3.0 版和之後, EACCES 也可能表示鎖定或共用違規。
也會發生錯誤,嘗試重新命名檔案或目錄,或移除現有的目錄中。
EBADF
檔案號碼錯誤。 有兩個可能的原因: 1) 指定的檔案描述項不是有效的值,或未參照至開啟的檔案。 2) 已嘗試要寫入至檔案或以唯讀存取開啟的裝置。EDEADLOCK
就會發生資源鎖死。 數學函式的引數不是網域中的函式。EDOM
數學引數。EEXIST
檔案存在。 您嘗試建立已經存在的檔案。 例如, _O_CREAT 和 _O_EXCL 中所指定的旗標 _ 開啟呼叫,但是已命名的檔案已經存在。EILSEQ
不合法的 (例如,在 MBCS 字串) 的位元組序列。EINVAL
無效的引數。 無效的值給其中一個引數的函式。 比方說,將檔案指標時,原點為指定的值 (的呼叫 fseek) 是在檔案開頭之前。EMFILE
開啟太多檔案。 沒有更多的檔案描述項可,所以可以不開啟任何檔案。ENOENT
沒有此類的檔案或目錄。 指定的檔案或目錄不存在,或找不到。 指定的檔案不存在,或在路徑的元件不會指定現有的目錄時,就會出現這個訊息。ENOEXEC
執行格式錯誤。 您嘗試執行的檔案,這不是可執行檔,或是不正確的可執行檔格式。ENOMEM
沒有足夠的核心。 沒有足夠的記憶體都可以嘗試的運算子。 例如,這則訊息就會發生時記憶體不足,無法執行子處理序,或當配置要求在 _getcwd 無法滿足呼叫。ENOSPC
裝置上沒有空間。 使用 (例如,當磁碟已滿) 裝置上沒有可用的空間進行寫入。ERANGE
結果太大。 數學函式的引數是重要的太大,導致結果中的部分或全部的損失。 這項錯誤也可能發生的其他函式引數會比預期更大 (例如,當緩衝區 引數,以 _getcwd 比預期還要更長)。EXDEV
交互裝置連結。 試著將檔案移到其他裝置 (使用重新命名函式)。STRUNCATE
字串的複本或串連導致截斷的字串。 請參閱 _TRUNCATE。
下列的值與 Posix 相容性的支援。 它們是在非 Posix 系統上的必要的值。
#define E2BIG [argument list too long]
#define EACCES [permission denied]
#define EADDRINUSE [address in use]
#define EADDRNOTAVAIL [address not available]
#define EAFNOSUPPORT [address family not supported]
#define EAGAIN [resource unavailable try again]
#define EALREADY [connection already in progress]
#define EBADF [bad file descriptor]
#define EBADMSG [bad message]
#define EBUSY [device or resource busy]
#define ECANCELED [operation canceled]
#define ECHILD [no child process]
#define ECONNABORTED [connection aborted]
#define ECONNREFUSED [connection refused]
#define ECONNRESET [connection reset]
#define EDEADLK [resource deadlock would occur]
#define EDESTADDRREQ [destination address required]
#define EDOM [argument out of domain]
#define EEXIST [file exists]
#define EFAULT [bad address]
#define EFBIG [file too large]
#define EHOSTUNREACH [host unreachable]
#define EIDRM [identifier removed]
#define EILSEQ [illegal byte sequence]
#define EINPROGRESS [operation in progress]
#define EINTR [interrupted]
#define EINVAL [invalid argument]
#define EIO [io error]
#define EISCONN [already connected]
#define EISDIR [is a directory]
#define ELOOP [too many synbolic link levels]
#define EMFILE [too many files open]
#define EMLINK [too many links]
#define EMSGSIZE [message size]
#define ENAMETOOLONG [filename too long]
#define ENETDOWN [network down]
#define ENETRESET [network reset]
#define ENETUNREACH [network unreachable]
#define ENFILE [too many files open in system]
#define ENOBUFS [no buffer space]
#define ENODATA [no message available]
#define ENODEV [no such device]
#define ENOENT [no such file or directory]
#define ENOEXEC [executable format error]
#define ENOLCK [no lock available]
#define ENOLINK [no link]
#define ENOMEM [not enough memory]
#define ENOMSG [no message]
#define ENOPROTOOPT [no protocol option]
#define ENOSPC [no space on device]
#define ENOSR [no stream resources]
#define ENOSTR [not a stream]
#define ENOSYS [function not supported]
#define ENOTCONN [not connected]
#define ENOTDIR [not a directory]
#define ENOTEMPTY [directory not empty]
#define ENOTRECOVERABLE [state not recoverable]
#define ENOTSOCK [not a socket]
#define ENOTSUP [not supported]
#define ENOTTY [inappropriate io control operation]
#define ENXIO [no such device or address]
#define EOPNOTSUPP [operation not supported]
#define EOTHER [other]
#define EOVERFLOW [value too large]
#define EOWNERDEAD [owner dead]
#define EPERM [operation not permitted]
#define EPIPE [broken pipe]
#define EPROTO [protocol error]
#define EPROTONOSUPPORT [protocol not supported]
#define EPROTOTYPE [wrong protocol type]
#define ERANGE [result out of range]
#define EROFS [read only file system]
#define ESPIPE [invalid seek]
#define ESRCH [no such process]
#define ETIME [stream timeout]
#define ETIMEDOUT [timed out]
#define ETXTBSY [text file busy]
#define EWOULDBLOCK [operation would block]
#define EXDEV [cross device link]