errno 定数errno Constants

構文Syntax

#include <errno.h>

解説Remarks

errno 値は、各種エラーが発生したときに errno 変数に割り当てられる定数です。The errno values are constants assigned to errno in the event of various error conditions.

ERRNO.H には、errno 値の定義が含まれています。ERRNO.H contains the definitions of the errno values. ただし、ERRNO.H に指定されているすべての定義が 32 ビット Windows オペレーティング システムで使用されるわけではありません。However, not all the definitions given in ERRNO.H are used in 32-bit Windows operating systems. ERRNO.H の値の一部は、UNIX 系のオペレーティング システムとの互換性を維持することを目的としています。Some of the values in ERRNO.H are present to maintain compatibility with the UNIX family of operating systems.

32 ビット Windows オペレーティング システムの errno 値は、XENIX システムの errno 値のサブセットです。The errno values in a 32-bit Windows operating system are a subset of the values for errno in XENIX systems. したがって、errno 値は、Windows オペレーティング システムのシステム コールが返す実際のエラー コードと必ずしも同じとは限りません。Thus, the errno value is not necessarily the same as the actual error code returned by a system call from the Windows operating systems. 実際のオペレーティング システムのエラー コードにアクセスするには、この値を含む _doserrno 変数を使用します。To access the actual operating system error code, use the _doserrno variable, which contains this value.

次の errno 値がサポートされています。The following errno values are supported:

定数Constant 説明Description
ECHILDECHILD 子プロセスが存在しません。No spawned processes.
EAGAINEAGAIN これ以上プロセスを生成できません。No more processes. これ以上プロセス スロットが足りないか、メモリが不足しているか、または最大の入れ子レベルに達したために、新しいプロセスの生成に失敗しました。An attempt to create a new process failed because there are no more process slots, or there is not enough memory, or the maximum nesting level has been reached.
E2BIGE2BIG 引数リストが長すぎます。Argument list too long.
EACCESEACCES アクセス許可は拒否されました。Permission denied. ファイルのアクセス許可の設定では、指定したアクセスは許可されません。The file's permission setting does not allow the specified access. このエラーは、ファイルまたはディレクトリにアクセスしたときのモードが、ファイルまたはディレクトリの属性に合わない場合に発生します。This error signifies that an attempt was made to access a file (or, in some cases, a directory) in a way that is incompatible with the file's attributes.

たとえば、開いていないファイルから読み出そうとしたり、既存の読み取り専用ファイルを書き込みモードで開こうとしたり、ファイルでなくディレクトリを開こうとしたりすると、このエラーが発生します。For example, the error can occur when an attempt is made to read from a file that is not open, to open an existing read-only file for writing, or to open a directory instead of a file. MS-DOS オペレーティング システムのバージョン 3.0 以降では、EACCES がロック違反または共有違反を示す場合があります。Under MS-DOS operating system versions 3.0 and later, EACCES may also indicate a locking or sharing violation.

また、ファイルまたはディレクトリを既存のディレクトリと同じ名前に変更しようとした場合や、既存のディレクトリを削除しようとした場合にも、このエラーが発生します。The error can also occur in an attempt to rename a file or directory or to remove an existing directory.
EBADFEBADF ファイル番号が正しくありません。Bad file number. 次の 2 つの原因が考えられます。1) 指定されたファイル記述子が有効な値でないか、開いているファイルを参照していないとき。There are two possible causes: 1) The specified file descriptor is not a valid value or does not refer to an open file. 2) 読み取り専用モードで開いているファイル、またはデバイスに書き込もうとしたとき。2) An attempt was made to write to a file or device opened for read-only access.
EDEADLOCKEDEADLOCK リソース デッドロックが発生します。Resource deadlock would occur. 数値演算関数の引数が、関数の定義域内にありません。The argument to a math function is not in the domain of the function.
EDOMEDOM 算術演算引数が使用されました。Math argument.
EEXISTEEXIST ファイルが存在します。Files exist. 既に存在するファイルを作成しようとしています。An attempt has been made to create a file that already exists. たとえば、_O_CREAT フラグと _O_EXCL フラグが _open の呼び出しで指定されますが、指定した名前のファイルが既に存在しています。For example, the _O_CREAT and _O_EXCL flags are specified in an _open call, but the named file already exists.
EILSEQEILSEQ 無効なバイト シーケンス (たとえば、MBCS 文字列)。Illegal sequence of bytes (for example, in an MBCS string).
EINVALEINVAL 引数が無効です。Invalid argument. 関数の引数のいずれかに無効な値が指定されています。An invalid value was given for one of the arguments to a function. たとえば、fseek の呼び出しでファイル ポインターの位置決めをするときに、起点として与えられた値がファイルの先頭より前にある場合です。For example, the value given for the origin when positioning a file pointer (by means of a call to fseek) is before the beginning of the file.
EMFILEEMFILE 開いているファイルが多すぎます。Too many open files. 使用できるファイル記述子が不足しているため、これ以上ファイルを開くことができません。No more file descriptors are available, so no more files can be opened.
ENOENTENOENT 該当するファイルまたはディレクトリがありません。No such file or directory. 指定したファイルまたはディレクトリは存在しないか、見つかりません。The specified file or directory does not exist or cannot be found. このメッセージは、指定のファイルが存在しない場合、またはパスのコンポーネントが既存のディレクトリを指定していない場合に発生します。This message can occur whenever a specified file does not exist or a component of a path does not specify an existing directory.
ENOEXECENOEXEC 実行形式エラーです。Exec format error. 実行可能形式でないか、無効な実行可能ファイル形式のファイルを実行しようとしました。An attempt was made to execute a file that is not executable or that has an invalid executable-file format.
ENOMEMENOMEM コアが不足しています。Not enough core. メモリ不足のため、目的の操作を実行できません。Not enough memory is available for the attempted operator. たとえば、このメッセージは、子プロセスを実行するためのメモリが不足している場合や、_getcwd の呼び出しで割り当て要求を満たすことができない場合に生成されます。For example, this message can occur when insufficient memory is available to execute a child process, or when the allocation request in a _getcwd call cannot be satisfied.
ENOSPCENOSPC デバイスに空き領域がありません。No space left on device. デバイスの書き込み可能領域が不足しています (たとえば、ディスクが満杯の場合です)。No more space for writing is available on the device (for example, when the disk is full).
ERANGEERANGE 結果が大きすぎます。Result too large. 数値演算関数の引数が大きすぎて、結果の有効数字の一部またはすべてが失われます。An argument to a math function is too large, resulting in partial or total loss of significance in the result. このエラーは、引数が予想よりも大きい場合に他の関数でも発生することがあります (たとえば、_getcwdbuffer の引数が予想より長い場合です)。This error can also occur in other functions when an argument is larger than expected (for example, when the buffer argument to _getcwd is longer than expected).
EXDEVEXDEV デバイス間リンクがあります。Cross-device link. rename 関数を使用して、ファイルを別のデバイスに移動しようとしました。An attempt was made to move a file to a different device (using the rename function).
STRUNCATESTRUNCATE 結果として切り詰められる文字列のコピーまたは連結です。A string copy or concatenation resulted in a truncated string. _TRUNCATE をご覧ください。See _TRUNCATE.

Posix との互換性のために、次の値がサポートされています。The following values are supported for compatibility with Posix. これらは、非 Posix システムで必要とされる値です。They are required values on non-Posix systems.

#define E2BIG /* argument list too long */
#define EACCES /* permission denied */
#define EADDRINUSE /* address in use */
#define EADDRNOTAVAIL /* address not available */
#define EAFNOSUPPORT /* address family not supported */
#define EAGAIN /* resource unavailable try again */
#define EALREADY /* connection already in progress */
#define EBADF /* bad file descriptor */
#define EBADMSG /* bad message */
#define EBUSY /* device or resource busy */
#define ECANCELED /* operation canceled */
#define ECHILD /* no child process */
#define ECONNABORTED /* connection aborted */
#define ECONNREFUSED /* connection refused */
#define ECONNRESET /* connection reset */
#define EDEADLK /* resource deadlock would occur */
#define EDESTADDRREQ /* destination address required */
#define EDOM /* argument out of domain */
#define EEXIST /* file exists */
#define EFAULT /* bad address */
#define EFBIG /* file too large */
#define EHOSTUNREACH /* host unreachable */
#define EIDRM /* identifier removed */
#define EILSEQ /* illegal byte sequence */
#define EINPROGRESS /* operation in progress */
#define EINTR /* interrupted */
#define EINVAL /* invalid argument */
#define EIO /* io error */
#define EISCONN /* already connected */
#define EISDIR /* is a directory */
#define ELOOP /* too many synbolic link levels */
#define EMFILE /* too many files open */
#define EMLINK /* too many links */
#define EMSGSIZE /* message size */
#define ENAMETOOLONG /* filename too long */
#define ENETDOWN /* network down */
#define ENETRESET /* network reset */
#define ENETUNREACH /* network unreachable */
#define ENFILE /* too many files open in system */
#define ENOBUFS /* no buffer space */
#define ENODATA /* no message available */
#define ENODEV /* no such device */
#define ENOENT /* no such file or directory */
#define ENOEXEC /* executable format error */
#define ENOLCK /* no lock available */
#define ENOLINK /* no link */
#define ENOMEM /* not enough memory */
#define ENOMSG /* no message */
#define ENOPROTOOPT /* no protocol option */
#define ENOSPC /* no space on device */
#define ENOSR /* no stream resources */
#define ENOSTR /* not a stream */
#define ENOSYS /* function not supported */
#define ENOTCONN /* not connected */
#define ENOTDIR /* not a directory */
#define ENOTEMPTY /* directory not empty */
#define ENOTRECOVERABLE /* state not recoverable */
#define ENOTSOCK /* not a socket */
#define ENOTSUP /* not supported */
#define ENOTTY /* inappropriate io control operation */
#define ENXIO /* no such device or address */
#define EOPNOTSUPP /* operation not supported */
#define EOTHER /* other */
#define EOVERFLOW /* value too large */
#define EOWNERDEAD /* owner dead */
#define EPERM /* operation not permitted */
#define EPIPE /* broken pipe */
#define EPROTO /* protocol error */
#define EPROTONOSUPPORT /* protocol not supported */
#define EPROTOTYPE /* wrong protocol type */
#define ERANGE /* result out of range */
#define EROFS /* read only file system */
#define ESPIPE /* invalid seek */
#define ESRCH /* no such process */
#define ETIME /* stream timeout */
#define ETIMEDOUT /* timed out */
#define ETXTBSY /* text file busy */
#define EWOULDBLOCK /* operation would block */
#define EXDEV /* cross device link */

関連項目See also

グローバル定数Global Constants