freopen

新たにファイルをオープンし、ストリームと結びつける

【書式】
#include <stdio.h>
FILE *freopen(const char *filename, const char *mode, FILE *stream);

【説明】
現在streamと結びついているファイル(*stream)をクローズし、*filenameをmodeでオープンして、新たにstreamと結び付けます。freopenを使うと、stdin、stdout、stderr に結びつけられたファイルを変更することができます。
*filenameのオープンの成功失敗にかかわらず、現在の*streamはクローズされ、そのクローズエラーも無視されます。また、*streamのエラー指示子とファイル終了指示子をクリアします。

【引数】
const char *filename : *streamと置きかえるファイル。
const char *mode : ファイルオープンのモード。fopenに同じ。
FILE *stream : filename に置きかわるストリーム

【戻り値】
成功時 : streamの値を返す
失敗時 : NULL

【使用例】
/* 標準出力stdoutをtest.txtに置き換える */
#include <stdio.h>

int main(void)
{
	char filename[] = "test.txt";
	FILE *stream;
		
	/* stdoutをtest.txtに変更 */
	if ((stream = freopen(filename, "w", stdout)) == NULL) {
		fprintf(stderr, "%sがオープンできません。\n", filename);
		return 1;
	}

	printf("この出力は%sに書込まれます。", filename);

	fclose(stream);
	
	return 0;
}
【実行結果】
test.txtに「この出力はtest.txtに書込まれます。」と出力。

戻る


banner
初心者のためのポイント学習C言語」
Copyright(c) 2000-2004 TOMOJI All Rights Reserved