名稱空間
變體
操作

錯誤號

來自 cppreference.com
< cpp‎ | 錯誤

<cerrno> 中定義的每個宏都擴充套件為型別為 int 的整型常量表達式,每個表示式都具有正值,與大多數 POSIX 錯誤碼匹配。定義了以下常量(實現可以定義更多,只要它們以 'E' 後跟數字或大寫字母開頭)。

定義於標頭檔案 <cerrno>
E2BIG
(C++11)
引數列表過長
(宏常量)
EACCES
(C++11)
許可權被拒絕
(宏常量)
EADDRINUSE
(C++11)
地址已在使用
(宏常量)
EADDRNOTAVAIL
(C++11)
地址不可用
(宏常量)
EAFNOSUPPORT
(C++11)
地址族不支援
(宏常量)
EAGAIN
(C++11)
資源不可用,請重試
(宏常量)
EALREADY
(C++11)
連線已在進行中
(宏常量)
EBADF
(C++11)
錯誤的檔案描述符
(宏常量)
EBADMSG
(C++11)
錯誤的訊息
(宏常量)
EBUSY
(C++11)
裝置或資源忙
(宏常量)
ECANCELED
(C++11)
操作已取消
(宏常量)
ECHILD
(C++11)
無子程序
(宏常量)
ECONNABORTED
(C++11)
連線已中止
(宏常量)
ECONNREFUSED
(C++11)
連線被拒絕
(宏常量)
ECONNRESET
(C++11)
連線已重置
(宏常量)
EDEADLK
(C++11)
將發生資源死鎖
(宏常量)
EDESTADDRREQ
(C++11)
需要目標地址
(宏常量)
EDOM
數學引數超出函式域
(宏常量)
EEXIST
(C++11)
檔案已存在
(宏常量)
EFAULT
(C++11)
錯誤的地址
(宏常量)
EFBIG
(C++11)
檔案過大
(宏常量)
EHOSTUNREACH
(C++11)
主機不可達
(宏常量)
EIDRM
(C++11)
識別符號已移除
(宏常量)
EILSEQ
(C++11)
非法位元組序列
(宏常量)
EINPROGRESS
(C++11)
操作正在進行中
(宏常量)
EINTR
(C++11)
中斷的函式
(宏常量)
EINVAL
(C++11)
無效引數
(宏常量)
EIO
(C++11)
I/O 錯誤
(宏常量)
EISCONN
(C++11)
套接字已連線
(宏常量)
EISDIR
(C++11)
是目錄
(宏常量)
ELOOP
(C++11)
符號連結級別過多
(宏常量)
EMFILE
(C++11)
檔案描述符值過大
(宏常量)
EMLINK
(C++11)
連結過多
(宏常量)
EMSGSIZE
(C++11)
訊息過大
(宏常量)
ENAMETOOLONG
(C++11)
檔名過長
(宏常量)
ENETDOWN
(C++11)
網路已關閉
(宏常量)
ENETRESET
(C++11)
網路中止連線
(宏常量)
ENETUNREACH
(C++11)
網路不可達
(宏常量)
ENFILE
(C++11)
系統中開啟檔案過多
(宏常量)
ENOBUFS
(C++11)
無可用緩衝區空間
(宏常量)
ENODATA
(C++11)
STREAM 頭讀取佇列上無可用訊息
(宏常量)
ENODEV
(C++11)
無此裝置
(宏常量)
ENOENT
(C++11)
無此檔案或目錄
(宏常量)
ENOEXEC
(C++11)
可執行檔案格式錯誤
(宏常量)
ENOLCK
(C++11)
無可用鎖
(宏常量)
ENOLINK
(C++11)
連結已斷開
(宏常量)
ENOMEM
(C++11)
空間不足
(宏常量)
ENOMSG
(C++11)
無所需型別的訊息
(宏常量)
ENOPROTOOPT
(C++11)
協議不可用
(宏常量)
ENOSPC
(C++11)
裝置上無剩餘空間
(宏常量)
ENOSR
(C++11)
無 STREAM 資源
(宏常量)
ENOSTR
(C++11)
不是 STREAM
(宏常量)
ENOSYS
(C++11)
函式不支援
(宏常量)
ENOTCONN
(C++11)
套接字未連線
(宏常量)
ENOTDIR
(C++11)
不是目錄
(宏常量)
ENOTEMPTY
(C++11)
目錄不為空
(宏常量)
ENOTRECOVERABLE
(C++11)
狀態不可恢復
(宏常量)
ENOTSOCK
(C++11)
不是套接字
(宏常量)
ENOTSUP
(C++11)
不支援
(宏常量)
ENOTTY
(C++11)
不適當的 I/O 控制操作
(宏常量)
ENXIO
(C++11)
無此裝置或地址
(宏常量)
EOPNOTSUPP
(C++11)
套接字上不支援此操作
(宏常量)
EOVERFLOW
(C++11)
值過大無法儲存在資料型別中
(宏常量)
EOWNERDEAD
(C++11)
前一個所有者已死亡
(宏常量)
EPERM
(C++11)
操作不允許
(宏常量)
EPIPE
(C++11)
管道破裂
(宏常量)
EPROTO
(C++11)
協議錯誤
(宏常量)
EPROTONOSUPPORT
(C++11)
協議不支援
(宏常量)
EPROTOTYPE
(C++11)
套接字協議型別錯誤
(宏常量)
ERANGE
結果過大
(宏常量)
EROFS
(C++11)
只讀檔案系統
(宏常量)
ESPIPE
(C++11)
無效的尋道
(宏常量)
ESRCH
(C++11)
無此程序
(宏常量)
ETIME
(C++11)
流 ioctl() 超時
(宏常量)
ETIMEDOUT
(C++11)
連線超時
(宏常量)
ETXTBSY
(C++11)
文字檔案忙
(宏常量)
EWOULDBLOCK
(C++11)
操作將阻塞
(宏常量)
EXDEV
(C++11)
跨裝置連結
(宏常量)

所有值都必須是唯一的,但 EOPNOTSUPPENOTSUP 的值可以相同,並且 EAGAINEWOULDBLOCK 的值可以相同。

[編輯] 示例

#include <cerrno>
#include <cstring>
#include <iomanip>
#include <iostream>
 
#define SHOW(x) std::cout << std::setw(15) << #x << ": " << std::strerror(x) << '\n'
 
int main()
{
    std::cout << "Known error codes/messages:\n\n";
 
    SHOW( E2BIG );
    SHOW( EACCES );
    SHOW( EADDRINUSE );
    SHOW( EADDRNOTAVAIL );
    SHOW( EAFNOSUPPORT );
    SHOW( EAGAIN );
    SHOW( EALREADY );
    SHOW( EBADF );
    SHOW( EBADMSG );
    SHOW( EBUSY );
    SHOW( ECANCELED );
    SHOW( ECHILD );
    SHOW( ECONNABORTED );
    SHOW( ECONNREFUSED );
    SHOW( ECONNRESET );
    SHOW( EDEADLK );
    SHOW( EDESTADDRREQ );
    SHOW( EDOM );
    SHOW( EEXIST );
    SHOW( EFAULT );
    SHOW( EFBIG );
    SHOW( EHOSTUNREACH );
    SHOW( EIDRM );
    SHOW( EILSEQ );
    SHOW( EINPROGRESS );
    SHOW( EINTR );
    SHOW( EINVAL );
    SHOW( EIO );
    SHOW( EISCONN );
    SHOW( EISDIR );
    SHOW( ELOOP );
    SHOW( EMFILE );
    SHOW( EMLINK );
    SHOW( EMSGSIZE );
    SHOW( ENAMETOOLONG );
    SHOW( ENETDOWN );
    SHOW( ENETRESET );
    SHOW( ENETUNREACH );
    SHOW( ENFILE );
    SHOW( ENOBUFS );
    SHOW( ENODATA );
    SHOW( ENODEV );
    SHOW( ENOENT );
    SHOW( ENOEXEC );
    SHOW( ENOLCK );
    SHOW( ENOLINK );
    SHOW( ENOMEM );
    SHOW( ENOMSG );
    SHOW( ENOPROTOOPT );
    SHOW( ENOSPC );
    SHOW( ENOSR );
    SHOW( ENOSTR );
    SHOW( ENOSYS );
    SHOW( ENOTCONN );
    SHOW( ENOTDIR );
    SHOW( ENOTEMPTY );
    SHOW( ENOTRECOVERABLE );
    SHOW( ENOTSOCK );
    SHOW( ENOTSUP );
    SHOW( ENOTTY );
    SHOW( ENXIO );
    SHOW( EOPNOTSUPP );
    SHOW( EOVERFLOW );
    SHOW( EOWNERDEAD );
    SHOW( EPERM );
    SHOW( EPIPE );
    SHOW( EPROTO );
    SHOW( EPROTONOSUPPORT );
    SHOW( EPROTOTYPE );
    SHOW( ERANGE );
    SHOW( EROFS );
    SHOW( ESPIPE );
    SHOW( ESRCH );
    SHOW( ETIME );
    SHOW( ETIMEDOUT );
    SHOW( ETXTBSY );
    SHOW( EWOULDBLOCK );
    SHOW( EXDEV );
}

可能的輸出

Known error codes/messages:
 
          E2BIG: Argument list too long
         EACCES: Permission denied
     EADDRINUSE: Address already in use
  EADDRNOTAVAIL: Cannot assign requested address
   EAFNOSUPPORT: Address family not supported by protocol
         EAGAIN: Resource temporarily unavailable
       EALREADY: Operation already in progress
          EBADF: Bad file descriptor
        EBADMSG: Bad message
          EBUSY: Device or resource busy
      ECANCELED: Operation canceled
         ECHILD: No child processes
   ECONNABORTED: Software caused connection abort
   ECONNREFUSED: Connection refused
     ECONNRESET: Connection reset by peer
        EDEADLK: Resource deadlock avoided
   EDESTADDRREQ: Destination address required
           EDOM: Numerical argument out of domain
         EEXIST: File exists
         EFAULT: Bad address
          EFBIG: File too large
   EHOSTUNREACH: No route to host
          EIDRM: Identifier removed
         EILSEQ: Invalid or incomplete multibyte or wide character
    EINPROGRESS: Operation now in progress
          EINTR: Interrupted system call
         EINVAL: Invalid argument
            EIO: Input/output error
        EISCONN: Transport endpoint is already connected
         EISDIR: Is a directory
          ELOOP: Too many levels of symbolic links
         EMFILE: Too many open files
         EMLINK: Too many links
       EMSGSIZE: Message too long
   ENAMETOOLONG: File name too long
       ENETDOWN: Network is down
      ENETRESET: Network dropped connection on reset
    ENETUNREACH: Network is unreachable
         ENFILE: Too many open files in system
        ENOBUFS: No buffer space available
        ENODATA: No data available
         ENODEV: No such device
         ENOENT: No such file or directory
        ENOEXEC: Exec format error
         ENOLCK: No locks available
        ENOLINK: Link has been severed
         ENOMEM: Cannot allocate memory
         ENOMSG: No message of desired type
    ENOPROTOOPT: Protocol not available
         ENOSPC: No space left on device
          ENOSR: Out of streams resources
         ENOSTR: Device not a stream
         ENOSYS: Function not implemented
       ENOTCONN: Transport endpoint is not connected
        ENOTDIR: Not a directory
      ENOTEMPTY: Directory not empty
ENOTRECOVERABLE: State not recoverable
       ENOTSOCK: Socket operation on non-socket
        ENOTSUP: Operation not supported
         ENOTTY: Inappropriate ioctl for device
          ENXIO: No such device or address
     EOPNOTSUPP: Operation not supported
      EOVERFLOW: Value too large for defined data type
     EOWNERDEAD: Owner died
          EPERM: Operation not permitted
          EPIPE: Broken pipe
         EPROTO: Protocol error
EPROTONOSUPPORT: Protocol not supported
     EPROTOTYPE: Protocol wrong type for socket
         ERANGE: Numerical result out of range
          EROFS: Read-only file system
         ESPIPE: Illegal seek
          ESRCH: No such process
          ETIME: Timer expired
      ETIMEDOUT: Connection timed out
        ETXTBSY: Text file busy
    EWOULDBLOCK: Resource temporarily unavailable
          EXDEV: Invalid cross-device link

[編輯] 參閱

(C++11)
std::error_condition 列舉列出所有標準 <cerrno> 宏常量
(類) [編輯]
擴充套件為 POSIX 相容的執行緒區域性錯誤碼變數的宏
(宏變數)[編輯]
將當前錯誤的字串顯示到 stderr
(函式) [編輯]
返回給定錯誤程式碼的文字版本
(函式) [編輯]
C 文件,關於 錯誤號