errno

errno は Linux/Unix で直近に発生したエラーの番号を示す外部変数である。システムコールやライブラリ関数を呼び出した際にエラーが発生すると、外部変数 errno にエラー番号が格納される。

同じ意味のエラーでも、プラットフォームによりエラー番号が異なることがある。

標準Cライブラリーのperror関数で、エラー番号に対応するシステムエラーメッセージを標準出力に出力することができる。

  1. EPERM
  2. ENOENT
  3. ESRCH
  4. EINTR
  5. EIO
  6. ENXIO
  7. E2BIG
  8. ENOEXEC
  9. EBADF
  10. ECHILD
  11. EAGAIN
  12. ENOMEM
  13. EACCES
  14. EFAULT
  15. ENOTBLK
  16. EBUSY
  17. EEXIST
  18. EXDEV
  19. ENODEV
  20. ENOTDIR
  21. EISDIR
  22. EINVAL
  23. ENFILE
  24. ENOTTY
  25. ETXTBSY
  26. EFBIG
  27. ENOSPC
  28. ESPIPE
  29. EROFS
  30. EMLINK
  31. EPIPE
  32. EDOM
  33. ERANGE
  34. ENOMSG
  35. EIDRM
  36. ECHRNG
  37. EL2NSYNC
  38. EL3HLT
  39. EL3RST
  40. ELNRNG
  41. EUNATCH
  42. ENOCSI
  43. EL2HLT
  44. EDEADLK
  45. ENOLCK
  46. ECANCELED
  47. ENOTSUP
  48. EDQUOT
  49. EBADE

EPERM

Operation not permitted

操作は許可されていない。

EPERMのエラー番号
プラットフォームエラー番号
Solaris1
Tru64 UNIX1
Microsoft Windows1
Ubuntu1

ENOENT

No such file or directory

ファイルまたはディレクトリが存在しません。

ENOENTのエラー番号
プラットフォームエラー番号
Solaris2
Tru64 UNIX2
Microsoft Windows2

ESRCH

No such process

プロセス、LWP、またはスレッドが存在しません。

ESRCHのエラー番号
プラットフォームエラー番号
Solaris3
Tru64 UNIX3
Microsoft Windows3

EINTR

Interrupted system call

システムコールに割り込みが発生しました。

EINTRのエラー番号
プラットフォームエラー番号
Solaris4
Tru64 UNIX4
Microsoft Windows4

EIO

I/O error

EIOのエラー番号
プラットフォームエラー番号
Solaris5
Tru64 UNIX5
Microsoft Windows5

ENXIO

No such device or address

ENXIOのエラー番号
プラットフォームエラー番号
Solaris6
Tru64 UNIX6
Microsoft Windows6

E2BIG

Arg list too long

E2BIGのエラー番号
プラットフォームエラー番号
Solaris7
Tru64 UNIX7
Microsoft Windows7

ENOEXEC

Exec format error

ENOEXEC のエラー番号
プラットフォームエラー番号
Solaris8
Tru64 UNIX8
Microsoft Windows8

EBADF

Bad file number

EBADF のエラー番号
プラットフォームエラー番号
Solaris9
Tru64 UNIX9
Microsoft Windows9

ECHILD

No child processes

ECHILD のエラー番号
プラットフォームエラー番号
Solaris10
Tru64 UNIX10
Microsoft Windows10

EAGAIN / EWOULDBLOCK

Resource temporarily unavailable

EAGAIN/EWOULDBLOCK のエラー番号
プラットフォームエラー番号
Solaris11
Tru64 UNIX35
Microsoft Windows11

ENOMEM

Not enough space

ENOMEM のエラー番号
プラットフォームエラー番号
Solaris12
Tru64 UNIX12
Microsoft Windows12

EACCES

Permission denied

EACCES のエラー番号
プラットフォームエラー番号
Solaris13
Tru64 UNIX13
Microsoft Windows13

EFAULT

Bad address

EFAULT のエラー番号
プラットフォームエラー番号
Solaris14
Tru64 UNIX14
Microsoft Windows14

ENOTBLK

Block device required

ENOTBLK のエラー番号
プラットフォームエラー番号
Solaris15
Tru64 UNIX15
Microsoft Windows-

EBUSY

Device busy

EBUSY のエラー番号
プラットフォームエラー番号
Solaris16
Tru64 UNIX16
Microsoft Windows16

EEXIST

File exists

EEXIST のエラー番号
プラットフォームエラー番号
Solaris17
Tru64 UNIX17
Microsoft Windows17

EXDEV

Cross-device link

EXDEV のエラー番号
プラットフォームエラー番号
Solaris18
Tru64 UNIX18
Microsoft Windows18

ENODEV

No such device

ENODEV のエラー番号
プラットフォームエラー番号
Solaris19
Tru64 UNIX19
Microsoft Windows19

ENOTDIR

Not a directory

ENOTDIR のエラー番号
プラットフォームエラー番号
Solaris20
Tru64 UNIX20
Microsoft Windows20

EISDIR

Is a directory

EISDIR のエラー番号
プラットフォームエラー番号
Solaris21
Tru64 UNIX21
Microsoft Windows21

EINVAL

Invalid argument

不正な引数です。

EINVALのエラー番号
プラットフォームエラー番号
Solaris22
Tru64 UNIX22
Microsoft Windows22

ENFILE

File table overflow

ENFILE のエラー番号
プラットフォームエラー番号
Solaris23
Tru64 UNIX23
Microsoft Windows23

EMFILE

Too many open files

EMFILE のエラー番号
プラットフォームエラー番号
Solaris24
Tru64 UNIX24
Microsoft Windows24

ENOTTY

Inappropriate ioctl for device

ENOTTY のエラー番号
プラットフォームエラー番号
Solaris25
Tru64 UNIX25
Microsoft Windows25

ETXTBSY

Text file busy

ETXTBSY のエラー番号
プラットフォームエラー番号
Solaris26
Tru64 UNIX26
Microsoft Windows-

EFBIG

File too large

EFBIG のエラー番号
プラットフォームエラー番号
Solaris27
Tru64 UNIX27
Microsoft Windows27

ENOSPC

No space left on device

デバイスに空き領域がありません。

ENOSPCのエラー番号
プラットフォームエラー番号
Solaris28
Tru64 UNIX28
Microsoft Windows28

write(2)システムコールは、直接ディスクに書き込むわけではありません。書き込みをスケジュールするだけです。ディスクの空き領域が足りない場合でも、ENOSPCでエラーになるとは限りません。書き込みに成功したかどうかは、fsync(2)を呼び出したうえ、close(2)の戻り値を確認する必要があります。

ESPIPE

Illegal seek

ESPIPE のエラー番号
プラットフォームエラー番号
Solaris29
Tru64 UNIX29
Microsoft Windows29

EROFS

Read-only file system

EROFS のエラー番号
プラットフォームエラー番号
Solaris30
Tru64 UNIX30
Microsoft Windows30
EMLINK のエラー番号
プラットフォームエラー番号
Solaris31
Tru64 UNIX31
Microsoft Windows31

EPIPE

EPIPE のエラー番号
プラットフォームエラー番号
Solaris32
Tru64 UNIX32
Microsoft Windows32

EDOM

EDOM のエラー番号
プラットフォームエラー番号
Solaris33
Tru64 UNIX33
Microsoft Windows33

ERANGE

ERANGE のエラー番号
プラットフォームエラー番号
Solaris34
Tru64 UNIX34
Microsoft Windows34

ENOMSG

ENOMSGのエラー番号
プラットフォームエラー番号
Solaris35
Tru64 UNIX80
Microsoft Windows-

EIDRM

EIDRMのエラー番号
プラットフォームエラー番号
Solaris36
Tru64 UNIX81
Microsoft Windows-

ECHRNG

ECHRNG のエラー番号
プラットフォームエラー番号
Solaris37
Tru64 UNIX-
Microsoft Windows-

EL2NSYNC

EL2NSYNC のエラー番号
プラットフォームエラー番号
Solaris38
Tru64 UNIX-

EL3HLT

EL3HLT のエラー番号
プラットフォームエラー番号
Solaris39
Tru64 UNIX-

EL3RST

EL3RST のエラー番号
プラットフォームエラー番号
Solaris40
Tru64 UNIX-

ELNRNG

ELNRNG のエラー番号
プラットフォームエラー番号
Solaris41
Tru64 UNIX-

EUNATCH

EUNATCH のエラー番号
プラットフォームエラー番号
Solaris42
Tru64 UNIX-

ENOCSI

ENOCSI のエラー番号
プラットフォームエラー番号
Solaris43
Tru64 UNIX-

EL2HLT

EL2HLT のエラー番号
プラットフォームエラー番号
Solaris44
Tru64 UNIX-

EDEADLK

EDEADLK のエラー番号
プラットフォームエラー番号
Solaris45
Tru64 UNIX11
Microsoft Windows36

ENOLCK

ENOLCK のエラー番号
プラットフォームエラー番号
Solaris46
Tru64 UNIX77
Microsoft Windows39

ECANCELED

ECANCELED のエラー番号
プラットフォームエラー番号
Solaris47
Tru64 UNIX94

ENOTSUP

ENOTSUP のエラー番号
プラットフォームエラー番号
Solaris48
Tru64 UNIX99

EDQUOT

EDQUOT のエラー番号
プラットフォームエラー番号
Solaris49
Tru64 UNIX69

EBADE

EBADE のエラー番号
プラットフォームエラー番号
Solaris50
Tru64 UNIX-