errno — 표준 errno 시스템 심볼

errno — 표준 errno 시스템 심볼

이 모듈은 표준 errno 시스템 심볼을 사용할 수 있게 해 줍니다. 각 심볼의 값은 해당 정수 값입니다. 이름과 설명은 linux/include/errno.h에서 가져온 것으로, 포괄적이어야 합니다.

출처: Python documentation

본문

errno.errorcode는 errno 값을 기반 시스템의 문자열 이름에 매핑하는 딕셔너리입니다. 예를 들어 errno.errorcode[errno.EPERM]'EPERM'에 매핑됩니다. 숫자 오류 코드를 오류 메시지로 번역하려면 os.strerror()를 사용하세요.

다음 목록 중 현재 플랫폼에서 사용되지 않는 심볼은 모듈에서 정의되지 않습니다. 정의된 심볼의 구체적인 목록은 errno.errorcode.keys()로 사용할 수 있습니다.

주요 심볼과 매핑된 예외

다음 심볼들은 해당 Python 예외에 매핑됩니다:

  • errno.EPERM — Operation not permitted (허용되지 않은 연산). PermissionError에 매핑.
  • errno.ENOENT — No such file or directory (그런 파일이나 디렉터리 없음). FileNotFoundError에 매핑.
  • errno.ESRCH — No such process (그런 프로세스 없음). ProcessLookupError에 매핑.
  • errno.EINTR — Interrupted system call (중단된 시스템 호출). InterruptedError에 매핑.
  • errno.ECHILD — No child processes (자식 프로세스 없음). ChildProcessError에 매핑.
  • errno.EAGAIN — Try again (다시 시도). BlockingIOError에 매핑.
  • errno.EACCES — Permission denied (권한 거부). PermissionError에 매핑.
  • errno.EEXIST — File exists (파일 존재). FileExistsError에 매핑.
  • errno.ENOTDIR — Not a directory (디렉터리 아님). NotADirectoryError에 매핑.
  • errno.EISDIR — Is a directory (디렉터리임). IsADirectoryError에 매핑.
  • errno.EPIPE — Broken pipe (깨진 파이프). BrokenPipeError에 매핑.
  • errno.EWOULDBLOCK — Operation would block (연산이 차단됨). BlockingIOError에 매핑.
  • errno.ECONNABORTED — Software caused connection abort. ConnectionAbortedError에 매핑.
  • errno.ECONNRESET — Connection reset by peer. ConnectionResetError에 매핑.
  • errno.ESHUTDOWN — Cannot send after transport endpoint shutdown. BrokenPipeError에 매핑.
  • errno.ETIMEDOUT — Connection timed out (연결 시간 초과). TimeoutError에 매핑.
  • errno.ECONNREFUSED — Connection refused (연결 거부). ConnectionRefusedError에 매핑.
  • errno.EALREADY, errno.EINPROGRESS — Operation already/in now in progress. BlockingIOError에 매핑.
  • errno.ENOTCAPABLE — Capabilities insufficient. PermissionError에 매핑 (3.11.1에서 추가).

기타 일반 심볼

매핑된 예외가 없는 다른 심볼들도 있습니다:

  • errno.EIO — I/O error
  • errno.ENXIO — No such device or address
  • errno.E2BIG — Arg list too long
  • errno.ENOEXEC — Exec format error
  • errno.EBADF — Bad file number
  • errno.ENOMEM — Out of memory
  • errno.EFAULT — Bad address
  • errno.EBUSY — Device or resource busy
  • errno.EXDEV — Cross-device link
  • errno.ENODEV — No such device
  • errno.EINVAL — Invalid argument
  • errno.ENFILE / errno.EMFILE — 파일 테이블 오버플로 / 너무 많은 열린 파일
  • errno.ENOSPC — No space left on device
  • errno.EROFS — Read-only file system
  • errno.EDOM / errno.ERANGE — 수학 인자 도메인 밖 / 수학 결과 표현 불가
  • errno.ENAMETOOLONG — File name too long
  • errno.ENOSYS — Function not implemented
  • errno.ENOTEMPTY — Directory not empty
  • errno.ELOOP — Too many symbolic links encountered
  • errno.EILSEQ — Illegal byte sequence
  • errno.ENOTSOCK — Socket operation on non-socket
  • errno.EMSGSIZE — Message too long
  • errno.EPROTOTYPE — Protocol wrong type for socket
  • errno.EADDRINUSE — Address already in use
  • errno.ENETDOWN / errno.ENETUNREACH — 네트워크 다운 / 네트워크 도달 불가
  • errno.ENOBUFS — No buffer space available
  • errno.EISCONN / errno.ENOTCONN — 이미 연결됨 / 연결 안 됨
  • errno.EHOSTDOWN / errno.EHOSTUNREACH — 호스트 다운 / 호스트로 경로 없음
  • errno.EDQUOT — Quota exceeded

버전에서 추가된 것: ENOTSUP(3.2), EQFULL(3.11), EHWPOISON(3.14), 그리고 여러 BSD 관련 심볼들(EAUTH, EBADARCH, ENOATTR, ECANCELED, EOWNERDEAD, ENOTRECOVERABLE 등)이 3.2에서 추가되었습니다.

더 알아보기 (Learn more)