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
|
|