Namespaces
Variants

Error numbers

From cppreference.net

<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)
입출력 오류
(매크로 상수)
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)
부적절한 입출력 제어 연산
(매크로 상수)
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)
크로스 디바이스 링크
(매크로 상수)

모든 값은 고유해야 하지만, EOPNOTSUPP ENOTSUP 의 값은 동일할 수 있으며, EAGAIN EWOULDBLOCK 의 값은 동일할 수 있습니다.

예제

#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 << "알려진 오류 코드/메시지:\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 );
}

가능한 출력:

알려진 오류 코드/메시지:
          E2BIG: 인수 목록이 너무 김
         EACCES: 권한 거부됨
     EADDRINUSE: 주소가 이미 사용 중임
  EADDRNOTAVAIL: 요청된 주소를 할당할 수 없음
   EAFNOSUPPORT: 프로토콜에서 지원하지 않는 주소 패밀리
         EAGAIN: 리소스가 일시적으로 사용 불가능
       EALREADY: 작업이 이미 진행 중임
          EBADF: 잘못된 파일 디스크립터
        EBADMSG: 잘못된 메시지
          EBUSY: 장치 또는 리소스가 사용 중임
      ECANCELED: 작업이 취소됨
         ECHILD: 자식 프로세스 없음
   ECONNABORTED: 소프트웨어에 의한 연결 중단
   ECONNREFUSED: 연결이 거부됨
     ECONNRESET: 피어에 의해 연결이 재설정됨
        EDEADLK: 리소스 데드락 회피됨
   EDESTADDRREQ: 대상 주소 필요
           EDOM: 수치 인수가 도메인을 벗어남
         EEXIST: 파일이 이미 존재함
         EFAULT: 잘못된 주소
          EFBIG: 파일이 너무 큼
   EHOSTUNREACH: 호스트로의 경로 없음
          EIDRM: 식별자가 제거됨
         EILSEQ: 잘못되었거나 불완전한 멀티바이트 또는 와이드 문자
    EINPROGRESS: 작업이 현재 진행 중임
          EINTR: 시스템 호출이 중단됨
         EINVAL: 잘못된 인수
            EIO: 입출력 오류
        EISCONN: 전송 엔드포인트가 이미 연결됨
         EISDIR: 디렉토리임
          ELOOP: 너무 많은 심볼릭 링크 단계
         EMFILE: 너무 많은 열린 파일
         EMLINK: 너무 많은 링크
       EMSGSIZE: 메시지가 너무 김
   ENAMETOOLONG: 파일 이름이 너무 김
       ENETDOWN: 네트워크가 다운됨
      ENETRESET: 재설정 시 네트워크 연결이 끊어짐
    ENETUNREACH: 네트워크에 도달할 수 없음
         ENFILE: 시스템에 너무 많은 열린 파일
        ENOBUFS: 사용 가능한 버퍼 공간 없음
        ENODATA: 사용 가능한 데이터 없음
         ENODEV: 해당 장치 없음
         ENOENT: 해당 파일 또는 디렉토리 없음
        ENOEXEC: 실행 형식 오류
         ENOLCK: 사용 가능한 락 없음
        ENOLINK: 링크가 끊어짐
         ENOMEM: 메모리를 할당할 수 없음
         ENOMSG: 원하는 유형의 메시지 없음
    ENOPROTOOPT: 프로토콜을 사용할 수 없음
         ENOSPC: 장치에 남은 공간 없음
          ENOSR: 스트림 리소스 부족
         ENOSTR: 장치가 스트림이 아님
         ENOSYS: 함수가 구현되지 않음
       ENOTCONN: 전송 엔드포인트가 연결되지 않음
        ENOTDIR: 디렉토리가 아님
      ENOTEMPTY: 디렉토리가 비어 있지 않음
ENOTRECOVERABLE: 상태를 복구할 수 없음
       ENOTSOCK: 소켓이 아닌 것에 소켓 연산 수행
        ENOTSUP: 지원되지 않는 연산
         ENOTTY: 장치에 부적절한 ioctl
          ENXIO: 해당 장치 또는 주소 없음
     EOPNOTSUPP: 지원되지 않는 연산
      EOVERFLOW: 정의된 데이터 타입에 비해 값이 너무 큼
     EOWNERDEAD: 소유자가 사망함
          EPERM: 연산이 허용되지 않음
          EPIPE: 깨진 파이프
         EPROTO: 프로토콜 오류
EPROTONOSUPPORT: 지원되지 않는 프로토콜
     EPROTOTYPE: 소켓에 대한 프로토콜 타입이 잘못됨
         ERANGE: 수치 결과가 범위를 벗어남
          EROFS: 읽기 전용 파일 시스템
         ESPIPE: 잘못된 탐색
          ESRCH: 해당 프로세스 없음
          ETIME: 타이머 만료
      ETIMEDOUT: 연결 시간 초과
        ETXTBSY: 텍스트 파일이 사용 중임
    EWOULDBLOCK: 리소스가 일시적으로 사용 불가능
          EXDEV: 잘못된 크로스-디바이스 링크

참고 항목

(C++11)
모든 표준 <cerrno> 매크로 상수를 나열하는 std::error_condition 열거형
(클래스)
POSIX 호환 스레드-로컬 오류 번호 변수로 확장되는 매크로
(매크로 변수)
현재 오류에 해당하는 문자열을 stderr 에 출력
(함수)
주어진 오류 코드의 텍스트 버전을 반환
(함수)
C documentation for Error numbers