errno 定数
更新 : 2007 年 11 月
#include <errno.h>
解説
errno 値は、各種エラーが発生したときに errno 変数に割り当てられる定数です。
ERRNO.H には、errno 値が定義されています。ただし、ERRNO.H に指定されているすべての定義が 32 ビット Windows オペレーティング システムで使用されるわけではありません。ERRNO.H の値の一部は、UNIX 系のオペレーティング システムとの互換性を目的としています。
32 ビット Windows オペレーティング システムの errno 値は、XENIX システムの errno 値のサブセットです。したがって、errno 値は、Windows オペレーティング システムのシステム コールが返す実際のエラー コードと必ずしも同じとは限りません。実際のオペレーティング システムのエラー コードにアクセスするには、この値を含む _doserrno 変数を使用します。
次の errno 値がサポートされています。
ECHILD
子プロセスが存在しない。EAGAIN
これ以上プロセスを生成できない。これ以上プロセス スロットが足りないか、メモリが不足か、または最大の入れ子レベルに達したために、新しいプロセスの生成に失敗します。E2BIG
引数リストが長すぎる。EACCES
アクセス許可が拒否された。ファイルのアクセス権の設定により、指定されたアクセスができません。このエラーは、ファイルまたはディレクトリにアクセスしたときのモードが、ファイルまたはディレクトリの属性に合わない場合に発生します。たとえば、開いていないファイルから読み出そうとしたり、既存の読み取り専用ファイルを書き込みモードで開こうとしたり、ファイルでなくディレクトリを開こうとしたりすると、このエラーが発生します。MS-DOS オペレーティング システムの Version 3.0 以降では、EACCES がロック違反または共有違反を示す場合があります。
また、ファイルまたはディレクトリを既存のディレクトリと同じ名前に変更しようとしたり、既存のディレクトリを削除しようとした場合にも、このエラーが発生します。
EBADF
不正なファイル番号。次の 2 つの原因があります。1) 指定されたファイル記述子が有効な値でないか、開いているファイルを参照していないとき。2) 読み取り専用モードで開いているファイル、またはデバイスに書き込もうとしたとき。EDEADLOCK
リソースのデットロックが発生する可能性がある。数値演算関数の引数が、関数の定義域内にありません。EDOM
数値演算関数の引数が関数のドメイン外の値である。EEXIST
ファイルが存在する。既に存在するファイルを作成しようとしています。たとえば、_O_CREAT フラグおよび _O_EXCL フラグが _open 呼び出しで指定されますが、指定した名前のファイルが既に存在している場合があります。EILSEQ
無効なバイト シーケンス。たとえば、MBCS 文字列に含まれています。EINVAL
不正な引数。関数の引数のいずれかに無効な値が指定されています。たとえば、fseek 呼び出しでファイル ポインタを移動するとき、指定した元の位置がファイルの先頭より前にある場合です。EMFILE
開いているファイルが多すぎる。使用できるファイル記述子が不足しているため、これ以上ファイルを開くことができません。ENOENT
ファイルまたはディレクトリがない。指定されたファイルまたはディレクトリが存在しないか、見つかりません。このメッセージは、指定のファイルが存在しない場合、またはパスのコンポーネントが既存のディレクトリを指定していない場合に発生します。ENOEXEC
実行ファイルのエラー。実行可能形式でないか、無効な実行可能ファイル形式のファイルを実行しようとしました。ENOMEM
メモリ不足。メモリ不足のため、目的の操作を実行できません。たとえば、このメッセージは、子プロセスを実行するためのメモリが不足している場合や、_getcwd 呼び出しでの割り当て要求を満たすことができない場合に生成されます。ENOSPC
デバイスの空き領域不足。デバイスの書き込み可能領域が不足しています。たとえば、ディスクが満杯の場合です。ERANGE
結果が大きすぎる。数値演算関数の引数が大きすぎて、結果の有効数字の一部または全部が失われます。このエラーは、引数が予想よりも大きい場合に他の関数でも発生することがあります。たとえば、_getcwd の buffer 引数が予想より大きい場合です。EXDEV
デバイス間リンク。rename 関数を使用して、ファイルを別のデバイスに移動しようとしました。STRUNCATE
結果として切り詰められる文字列のコピーまたは連結。_TRUNCATE を参照してください。