errno(3) - wariua/manpages-ko GitHub Wiki
errno - λ§μ§λ§ μ€λ₯μ λ²νΈ
#include <errno.h>
<errno.h>
ν€λ νμΌμμ μ μ λ³μ errno
λ₯Ό μ μνλ€. μμ€ν
νΈμΆκ³Ό μΌλΆ λΌμ΄λΈλ¬λ¦¬ ν¨μμμ μ€λ₯ λ°μ μ 무μμ΄ μλͺ»λλμ§ λνλ΄κΈ° μν΄ κ·Έ λ³μλ₯Ό μ€μ νλ€.
νΈμΆμ λ°ν κ°μ΄ μ€λ₯λ₯Ό λνλΈ (μ¦ λλΆλΆ μμ€ν
νΈμΆμμ -1, λλΆλΆ λΌμ΄λΈλ¬λ¦¬ ν¨μμμ -1 λ΄μ§ NULLμΈ) λμλ§ errno
μ κ°μ΄ μλ―Έκ° μλ€. μ¦ μ±κ³΅νλ ν¨μμμ errno
λ₯Ό λ°κΎΈλ κ²μ΄ νμ©λλ€. μ΄λ€ μμ€ν
νΈμΆμ΄λ λΌμ΄λΈλ¬λ¦¬ νΈμΆμμλ μ λ errno
κ°μ 0μΌλ‘ μ€μ νμ§λ μλλ€.
μ΄λ€ μμ€ν
νΈμΆκ³Ό λΌμ΄λΈλ¬λ¦¬ ν¨μ(κ°λ Ή getpriority(2))μμλ -1μ΄ μ±κ³΅ μμ μ ν¨ν λ°ν κ°μ΄λ€. κ·Έλ° κ²½μ°μλ νΈμΆ μ μ errno
λ₯Ό 0μΌλ‘ μ€μ ν΄μ μ±κ³΅ λ°νκ³Ό μ€λ₯ λ°νμ ꡬλ³ν μ μλ€. μ€λ₯κ° λ°μνμ μλ μμμ λνλ΄λ μνλ₯Ό νΈμΆμμ λ°ννλ©΄ errno
κ° 0 μλ κ°μΈμ§ νμΈνλ©΄ λλ€.
errno
λ ISO Cμμ int
νμ
μ λ³κ²½ κ°λ₯ν lvalueλΌκ³ κ·μ λΌ μμΌλ©° λͺ
μμ μΌλ‘ μ μΈν΄μλ μ λλ€. μ¦ errno
κ° λ§€ν¬λ‘μΌ μλ μλ€. errno
λ μ€λ λ λ‘컬μ΄λ€. κ·Έλμ ν μ€λ λμμ κ·Έ κ°μ μ€μ ν΄λ λ€λ₯Έ μ€λ λμ κ°μ μν₯μ μ£Όμ§ μλλ€.
μ ν¨ν μ€λ₯ λ²νΈλ€μ λͺ¨λ μμ λ²νΈμ΄λ€. errno
μ λ±μ₯ν μ μλ μ€λ₯ λ²νΈ κ°κ°μ μ¬λ³Ό μ΄λ¦μ΄ <errno.h>
ν€λ νμΌμ μ μλΌ μλ€.
POSIX.1μμ λͺ
μΈνλ μ€λ₯ μ΄λ¦λ€μ λͺ¨λ μλ‘ λ€λ₯Έ κ°μ κ°μ ΈμΌ νλ€. λ¨ μμΈλ‘ EAGAIN
κ³Ό EWOULDBLOCK
μ κ°μ μλ μλ€.
κ° μ¬λ³Ό μ΄λ¦μ λμνλ μ€λ₯ λ²νΈλ μ λμ€ μμ€ν μ’ λ₯μ λ°λΌ λ€λ₯΄λ©° μ¬μ§μ΄ 리λ μ€μμ μν€ν μ²μ λ°λΌ λ€λ₯΄κΈ°λ νλ€. κ·Έλμ μλμ μ€λ₯ μ΄λ¦ λͺ©λ‘μλ λ²νΈ κ°μ΄ ν¬ν¨λΌ μμ§ μλ€. perror(3) λ° strerror(3) ν¨μλ₯Ό μ¬μ©νλ©΄ κ·Έ μ΄λ¦μ λμνλ ν μ€νΈ μ€λ₯ λ©μμ§λ‘ λ³νν μ μλ€.
μ΄λ€ 리λ
μ€ μμ€ν
μμμλ (moreutils
ν¨ν€μ§μ ν¬ν¨λ) errno(1)
λͺ
λ Ήμ μ°λ©΄ λͺ¨λ μ€λ₯ μ¬λ³Ό μ΄λ¦κ³Ό λμνλ μ€λ₯ λ²νΈλ€μ λͺ©λ‘μ μ»μ μ μλ€.
$ errno -l
EPERM 1 Operation not permitted
ENOENT 2 No such file or directory
ESRCH 3 No such process
EINTR 4 Interrupted system call
EIO 5 Input/output error
...
λν errno(1)
λͺ
λ Ήμ μ¬μ©ν΄ λ€μκ³Ό κ°μ΄ κ°λ³ μ€λ₯ λ²νΈμ μ΄λ¦μ μ°Ύμλ³΄κ³ μ€λ₯ μμ μμ μ»μ λ¬Έμμ΄λ‘ μ€λ₯λ₯Ό κ²μν μ μλ€.
$ errno 2
ENOENT 2 No such file or directory
$ errno ESRCH
ESRCH 3 No such process
$ errno -s permission
EACCES 13 Permission denied
μλμ μ€λ₯ μ¬λ³Ό μ΄λ¦ λͺ©λ‘μμ μ¬λ¬ μ΄λ¦λ€μ λ€μκ³Ό κ°μ νμκ° λμ΄ μλ€.
-
POSIX.1-2001: κ·Έ μ΄λ¦μ POSIX.1-2001μμ, κ·Έλ¦¬κ³ λ¬λ¦¬ νμλΌ μμ§ μμΌλ©΄ μ΄ν POSIX.1 λ²μ λ€μμλ κ·μ νκ³ μλ€.
-
POSIX.1-2008: κ·Έ μ΄λ¦μ POSIX.1-2008μμλ κ·μ νκ³ μμ§λ§ λ μ μ POSIX.1 νμ€μλ μλ€.
-
C99: κ·Έ μ΄λ¦μ C99μμ κ·μ νκ³ μλ€. λ€μμ 리λ μ€μμ μ μλΌ μλ μ€λ₯ μ¬λ³Ό μ΄λ¦λ€μ λͺ©λ‘μ΄λ€.
E2BIG |
μΈμ λͺ©λ‘μ΄ λ무 κΈΊ. (POSIX.1-2001) |
EACCES |
κΆν κ±°λΆλ¨. (POSIX.1-2001) |
EADDRINUSE |
μ£Όμκ° μ΄λ―Έ μ¬μ© μ€. (POSIX.1-2001) |
EADDRNOTAVAIL |
μ¬μ© κ°λ₯ μ£Όμ μμ. (POSIX.1-2001) |
EAFNOSUPPORT |
μ§μνμ§ μλ μ£Όμ ν¨λ°λ¦¬. (POSIX.1-2001) |
EAGAIN |
μμμ΄ μΌμμ μΌλ‘ μ¬μ© λΆκ°. (EWOULDBLOCK κ³Ό κ°μ κ°μΌ μλ μμ.) (POSIX.1-2001) |
EALREADY |
μ°κ²°μ΄ μ΄λ―Έ μ§ν μ€. (POSIX.1-2001) |
EBADE |
μ ν¨νμ§ μμ κ΅ν. |
EBADF |
μλͺ»λ νμΌ λμ€ν¬λ¦½ν°. (POSIX.1-2001) |
EBADFD |
μλͺ»λ μνμ νμΌ λμ€ν¬λ¦½ν°. |
EBADMSG |
μλͺ»λ λ©μμ§. (POSIX.1-2001) |
EBADR |
μ ν¨νμ§ μμ μμ² λμ€ν¬λ¦½ν°. |
EBADRQC |
μ ν¨νμ§ μμ μμ² μ½λ. |
EBADSLT |
μ ν¨νμ§ μμ μ¬λ‘―. |
EBUSY |
μ₯μΉ λλ μμμ΄ μ¬μ© μ€. (POSIX.1-2001) |
ECANCELED |
λμμ΄ μ·¨μλμ. (POSIX.1-2001) |
ECHILD |
μμ νλ‘μΈμ€κ° μμ. (POSIX.1-2001) |
ECHRNG |
λ²μλ₯Ό λ²μ΄λλ μ±λ λ²νΈ. |
ECOMM |
μ‘μ μ€ ν΅μ μ€λ₯. |
ECONNABORTED |
μ°κ²° μ€λ¨λ¨. (POSIX.1-2001) |
ECONNREFUSED |
μ°κ²° κ±°λΆλ¨. (POSIX.1-2001) |
ECONNRESET |
μ°κ²° 리μ λ¨. (POSIX.1-2001) |
EDEADLK |
μμ κ΅μ°© ννΌνμ. (POSIX.1-2001) |
EDESTADDRREQ |
λͺ©μ μ£Όμ νμν¨. (POSIX.1-2001) |
EDOM |
μν μΈμκ° ν¨μ μ μμμ λ²μ΄λ¨. (POSIX.1, C99) |
EDQUOT |
λμ€ν¬ μΏΌν° μ΄κ³Όνμ. (POSIX.1-2001) |
EEXIST |
νμΌμ΄ μ‘΄μ¬ν¨. (POSIX.1-2001) |
EFAULT |
μλͺ»λ μ£Όμ. (POSIX.1-2001) |
EFBIG |
νμΌμ΄ λ무 νΌ. (POSIX.1-2001) |
EHOSTDOWN |
νΈμ€νΈκ° λ΄λ €κ° μμ. |
EHOSTUNREACH |
νΈμ€νΈμ λλ¬ λΆκ°λ₯ν¨. (POSIX.1-2001) |
EHWPOISON |
λ©λͺ¨λ¦¬ νμ΄μ§μ νλμ¨μ΄ μ€λ₯κ° μμ. |
EIDRM |
μλ³μκ° μ κ±°λμ. (POSIX.1-2001) |
EILSEQ |
λ€μ€ λ°μ΄νΈ λ΄μ§ νμ₯ λ¬Έμκ° μ ν¨νμ§ μκ±°λ λΆμμ ν¨. (POSIX.1, C99) μ΄λ glibcμ μ€λ₯ μ€λͺ μ. POSIX.1μμλ μ΄ μ€λ₯λ₯Ό "μ ν¨νμ§ μμ λ°μ΄νΈ μ΄"μ΄λΌκ³ κΈ°μ ν¨. |
EINPROGRESS |
λμ μ§ν μ€. (POSIX.1-2001) |
EINTR |
ν¨μ νΈμΆμ΄ μ€λ¨λμ. (POSIX.1-2001) signal(7) μ°Έκ³ . |
EINVAL |
μλͺ»λ μΈμ. (POSIX.1-2001) |
EIO |
μ μΆλ ₯ μ€λ₯. (POSIX.1-2001) |
EISCONN |
μμΌμ΄ μ°κ²°λΌ μμ. (POSIX.1-2001) |
EISDIR |
λλ ν°λ¦¬μ. (POSIX.1-2001) |
EISNAM |
κΈ°λͺ νμ νμΌμ. |
EKEYEXPIRED |
ν€κ° λ§λ£λμ. |
EKEYREJECTED |
ν€κ° μλΉμ€μμ κ±°λΆλμ. |
EKEYREVOKED |
ν€κ° νμ§λμ. |
EL2HLT |
2κ³μΈ΅ μ€λ¨. |
EL2NSYNC |
2κ³μΈ΅ λκΈ°ν μ λ¨. |
EL3HLT |
3κ³μΈ΅ μ€λ¨. |
EL3RST |
3κ³μΈ΅ μ¬μ€μ . |
ELIBACC |
νμν 곡μ λΌμ΄λΈλ¬λ¦¬μ μ κ·Όν μ μμ. |
ELIBBAD |
μ κ·Όνλ €λ 곡μ λΌμ΄λΈλ¬λ¦¬μ μ€λ₯. |
ELIBMAX |
λ§ν¬ νλ €λ 곡μ λΌμ΄λΈλ¬λ¦¬κ° λ무 λ§μ. |
ELIBSCN |
a.outμ .lib μΉμ μ μ€λ₯. |
ELIBEXEC |
곡μ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ§μ μ€νν μ μμ. |
ELNRANGE |
λ§ν¬ κ°μκ° λ²μλ₯Ό μ΄κ³Ό. |
ELOOP |
λ무 κΈ΄ μ¬λ³Όλ¦ λ§ν¬ λ¨κ³. (POSIX.1-2001) |
EMEDIUMTYPE |
μλͺ»λ 맀체 μ ν. |
EMFILE |
μ΄λ¦° νμΌ λ무 λ§μ. (POSIX.1-2001) λ³΄ν΅ getrlimit(2)μ μ€λͺ
λ RLIMIT_NOFILE μμ μ ν μ΄κ³Ό λλ¬Έ. |
EMLINK |
λ§ν¬ λ무 λ§μ. (POSIX.1-2001) |
EMSGSIZE |
λ©μμ§κ° λ무 κΈΊ. (POSIX.1-2001) |
EMULTIHOP |
λ©ν°ν μλνμ. (POSIX.1-2001) |
ENAMETOOLONG |
νμΌ μ΄λ¦μ΄ λ무 κΈΊ. (POSIX.1-2001) |
ENETDOWN |
λ€νΈμν¬ λ΄λ €κ° μμ. (POSIX.1-2001) |
ENETRESET |
μ°κ²°μ΄ λ€νΈμν¬μ μν΄ μ€λ¨λ¨. (POSIX.1-2001) |
ENETUNREACH |
λ€νΈμν¬ λλ¬ λΆκ°λ₯. (POSIX.1-2001) |
ENFILE |
μμ€ν
μ μ΄λ¦° νμΌ λ무 λ§μ. (POSIX.1-2001) 리λ
μ€μμλ μλ§ /proc/sys/fs/file-max μ ν(proc(5) μ°Έκ³ )μ κ±Έλ €μμΌ κ². |
ENOANO |
anode μμ. |
ENOBUFS |
κ°μ© λ²νΌ κ³΅κ° μμ. (POSIX.1 (XSI STREAMS μ΅μ )) |
ENODATA |
STREAM ν€λ μ½κΈ° νμ κ°μ© λ©μμ§ μμ. (POSIX.1-2001) |
ENODEV |
κ·Έλ° μ₯μΉ μμ. (POSIX.1-2001) |
ENOENT |
κ·Έλ° νμΌ λ΄μ§ λλ ν°λ¦¬ μμ. (POSIX.1-2001) λ³΄ν΅ μ§μ ν κ²½λ‘λͺ μ΄ μ‘΄μ¬νμ§ μκ±°λ, κ²½λ‘λͺ λλ ν°λ¦¬ μ λλΆμ μ΄λ μμκ° μ‘΄μ¬νμ§ μκ±°λ, μ§μ ν κ²½λ‘λͺ μ΄ κΉ¨μ§ μ¬λ³Όλ¦ λ§ν¬μΌ λ μ΄ μ€λ₯κ° λ°μνλ€. |
ENOEXEC |
μ€ν νμΌ νμ μ€λ₯. (POSIX.1-2001) |
ENOKEY |
νμν ν€κ° μμ. |
ENOLCK |
μΈ μ μλ λ½ μμ. (POSIX.1-2001) |
ENOLINK |
λ§ν¬κ° μμλμ. (POSIX.1-2001) |
ENOMEDIUM |
맀체λ₯Ό μ°Ύμ§ λͺ»νμ. |
ENOMEM |
κ³΅κ° λΆμ‘±/λ©λͺ¨λ¦¬ ν λΉν μ μμ. (POSIX-1.2001) |
ENOMSG |
μνλ μ νμ λ©μμ§ μμ. (POSIX.1-2001) |
ENONET |
λ¨Έμ μ΄ λ€νΈμν¬ μμ μμ. |
ENOPKG |
ν¨ν€μ§ μ€μΉ μ λμ. |
ENOPROTOOPT |
κ°μ© νλ‘ν μ½ μμ. (POSIX.1-2001) |
ENOSPC |
μ₯μΉμ λ¨μ κ³΅κ° μμ. (POSIX.1-2001) |
ENOSR |
STREAM μμ μμ. (POSIX.1 (XSI STREAMS μ΅μ )) |
ENOSTR |
STREAM μλ. (POSIX.1 (XSI STREAMS μ΅μ )) |
ENOSYS |
κΈ°λ₯ ꡬν μ λΌ μμ. (POSIX.1-2001) |
ENOTBLK |
λΈλ‘ μ₯μΉ νμν¨. |
ENOTCONN |
μμΌ μ°κ²° μ λΌ μμ. (POSIX.1-2001) |
ENOTDIR |
λλ ν°λ¦¬κ° μλ. (POSIX.1-2001) |
ENOTEMPTY |
λλ ν°λ¦¬κ° λΉμ΄ μμ§ μμ. (POSIX.1-2001) |
ENOTRECOVERABLE |
μν 볡μ λΆκ°λ₯. (POSIX.1-2008) |
ENOTSOCK |
μμΌ μλ. (POSIX.1-2001) |
ENOTSUP |
μ§μ μ λλ λμ. (POSIX.1-2001) |
ENOTTY |
λΆμ μ ν I/O μ μ΄ λμ. (POSIX.1-2001) |
ENOTUNIQ |
μ΄λ¦μ΄ λ€νΈμν¬μμ μ μΌνμ§ μμ. |
ENXIO |
κ·Έλ° μ₯μΉ λ΄μ§ μ£Όμ μμ. (POSIX.1-2001) |
EOPNOTSUPP |
μμΌμμ μ§μ μ λλ λμ. (POSIX.1-2001) (리λ
μ€μμλ |
EOVERFLOW |
κ°μ΄ λ무 컀μ λ°μ΄ν° νμ μ μ μ₯ μ λ¨. (POSIX.1-2001) |
EOWNERDEAD |
μμ μκ° μ£½μμ. (POSIX.1-2008) |
EPERM |
λμμ΄ νμ©λμ§ μμ. (POSIX.1-2001) |
EPFNOSUPPORT |
μ§μνμ§ μμ νλ‘ν μ½ ν¨λ°λ¦¬. |
EPIPE |
νμ΄ν κΉ¨μ‘μ. (POSIX.1-2001) |
EPROTO |
νλ‘ν μ½ μ€λ₯. (POSIX.1-2001) |
EPROTONOSUPPORT |
μ§μνμ§ μλ νλ‘ν μ½. (POSIX.1-2001) |
EPROTOTYPE |
μμΌμ λ§μ§ μλ νλ‘ν μ½ νμ . (POSIX.1-2001) |
ERANGE |
κ²°κ³Όκ° λ무 νΌ. (POSIX.1, C99) |
EREMCHG |
μ격 μ£Όμκ° λ°λμμ. |
EREMOTE |
κ°μ²΄κ° μ격μ μμ. |
EREMOTEIO |
μ격 I/O μ€λ₯. |
ERESTART |
μ€λ¨λ μμ€ν νΈμΆμ μ¬μμν΄μΌ ν¨. |
ERFKILL |
RF-kill λλ¬Έμ λμ λΆκ°λ₯. |
EROFS |
μ½κΈ° μ μ© νμΌ μμ€ν . (POSIX.1-2001) |
ESHUTDOWN |
μ μ‘ μ’ λ¨ μ μ§ ν λ³΄λΌ μ μμ. |
ESPIPE |
μμΉ μ΄λ λΆκ°λ₯. (POSIX.1-2001) |
ESOCKTNOSUPPORT |
μ§μνμ§ μλ μμΌ μ ν. |
ESRCH |
κ·Έλ° νλ‘μΈμ€κ° μμ. (POSIX.1-2001) |
ESTALE |
νμΌ νΈλ€μ΄ λλ μ ν¨νμ§ μμ. (POSIX.1-2001) NFS λ° κΈ°ν νμΌ μμ€ν μμ μ΄ μ€λ₯κ° λ°μν μ μλ€. |
ESTRPIPE |
μ€νΈλ¦Ό νμ΄ν μ€λ₯. |
ETIME |
νμ΄λ¨Έ λ§λ£λ¨. (POSIX.1 (XSI STREAMS μ΅μ )) (POSIX.1μμλ "STREAM |
ETIMEDOUT |
μ°κ²°μ΄ νμμμ λ¨. (POSIX.1-2001) |
ETOOMANYREFS |
μ°Έμ‘°κ° λ무 λ§μ. splice ν μ μμ. |
ETXTBSY |
ν μ€νΈ νμΌ μ¬μ© μ€. (POSIX.1-2001) |
EUCLEAN |
ꡬ쑰 μ 리 νμ. |
EUNATCH |
νλ‘ν μ½ λλΌμ΄λ² λΆμ΄ μμ§ μμ. |
EUSERS |
μ¬μ©μκ° λ무 λ§μ. |
EWOULDBLOCK |
λμμ΄ λΈλ‘ νκ² λ¨. (EAGAIN κ³Ό κ°μ κ°μΌ μλ μμ.) (POSIX.1-2001) |
EXDEV |
λΆμ μ ν λ§ν¬. (POSIX.1-2001) |
EXFULL |
κ΅νκΈ°μ μ¬μ μμ. |
λ§μ΄ νλ μ€μλ‘ λ€μκ³Ό κ°μ κ² μλ€.
if (somecall() == -1) {
printf("somecall() failed\n");
if (errno == ...) { ... }
}
μ¬κΈ°μ errno
κ° κΌ somecall()
ν¨μ λ°ν μμ κ°μ κ°μ§κ³ μλ κ² μλλ€. (μ¦ printf(3)μ μν΄ λ°λμμ μλ μλ€.) λΌμ΄λΈλ¬λ¦¬ νΈμΆμ κ±°μΉλ©΄μ errno
κ°μ΄ 보쑴λΌμΌ νλ€λ©΄ μ μ₯μ ν΄μΌ νλ€.
if (somecall() == -1) {
int errsv = errno;
printf("somecall() failed\n");
if (errsv == ...) { ... }
}
μΌλΆ μμ£Ό μ€λλ μμ€ν
μμλ <errno.h>
κ° μ‘΄μ¬νμ§ μκ±°λ errno
λ₯Ό μ μΈν΄ μ£Όμ§ μμμΌλ©°, κ·Έλμ errno
λ₯Ό μ§μ μ μΈ(extern int errno
)ν΄μΌ νλ€. μ§κΈμ κ·Έλ κ² ν΄μ μ λλ€. μ€λ μ λΆν° κ·Έλ΄ νμκ° μκ² λμΌλ©° μ΅κ·Όμ C λΌμ΄λΈλ¬λ¦¬ λ²μ λ€μμ λ¬Έμ λ₯Ό μΌμΌν€κ² λλ€.
errno(1)
, err(3), error(3), perror(3), strerror(3)
2019-03-06