C/C++ 入門

ホーム > 標準 C ライブラリ > エラー

エラー

スポンサーリンク

errno.h は C 言語の標準ライブラリのヘッダーファイルです。

ここではエラーレポートのためのマクロが、定義されていて errno という名前でそれを取得することができるようになっています。

errno はプログラムのスタートアップ時に 0 がセットされて、ライブラリ関数はその値をいつでも変える可能性があります。 極端な話、エラーが起きようが起きまいが、いつでも変更することがあります。

たいていの場合、エラーが起きた場合は戻り値を NULL としますが、 いくつかの関数では errno をゼロにしたりします。

関数を使うときは、呼び出し側はどういう条件でエラーを捕まえるか、ちゃんと確認しないといけないわけです。

さて、ではさっそく、動作確認をしてみましょう。

次の例では、fopen 関数で存在しないファイル b.html を開こうとします。 そのタイミングで errno がどのようになるかみてみましょう。

#include <stdio.h>
#include <errno.h>

void main() {
	

	FILE* fp = fopen("C:\\Temp\\b.html", "r");

	printf("errno = %d\n", errno);

	if(fp){
		fclose(fp);
	}

}

この実行結果は次のようになりました。

errno = 2

errno.h 内で 2 と定義されているのは ENOENT です。

errno.h

ENOENT の意味は "No such file or directory." という意味です。実際にここで試した例でも、指定した名前のファイルがないから、ファイルがないという意味のエラーコードになっているということで合ってますね。

ちなみに、エラーの意味は Open Group などの情報を参照してください。

スポンサーリンク
ホーム > 標準 C ライブラリ > エラー