arrow 若葉プログラミング塾 > 知識の玉手箱 > C関数リファレンス >
feof()
feof()

この関数の目的

feof()は、ストリームの「ファイルの終わり」指示子を調べる。

定義

	#include <stdio.h>
	int feof(FILE *stream);

働き

この関数は stream で指されるストリームのファイルの終わり指定子を検査し、セットされていた場合にのみゼロでない数を返す。

解説

バイナリストリームを読み込んでいる場合、 getc() などの返り値に EOF が出て来たとしても、 それはバイナリのデータかファイルの終わりを示すのか区別できない。そんな時にこの関数が役に立つ。

以下に、典型的な「バイナリファイルを終わりまで読み込む」ループを示す。 name はファイル名である。

{
	FILE *fp;
	int c;
	if(fp = fopen(name, "rb")){
		for(; (c = getc(fp)) != EOF || !feof(fp);){
			/* ... */
		}
	}
}

なお、テキストストリームでは返り値だけでファイルの終わりを判断してもかまわない。

arrow 若葉プログラミング塾 > 知識の玉手箱 > C関数リファレンス >
KC