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に書込まれます。」と出力。
「初心者のためのポイント学習C言語」
Copyright(c) 2000-2004 TOMOJI All Rights Reserved