C言語編 標準ライブラリのリファレンス freopen

先頭へ戻る

freopen関数

概要 ストリームを開きなおす
ヘッダ stdio.h
形式 FILE* freopen(const char* filename, const char* mode, FILE* stream);
引数 filename ファイル名。あるいはヌルポインタ
mode モード。
stream 既に開かれているストリーム。
戻り値 成功した場合は、引数stream が返される。失敗した場合は、ヌルポインタを返す。
詳細 引数filename がヌルポインタの場合は、現時点でストリームに結び付けられているファイルを、引数mode のモードで開きなおす。どのような状況であれば成功あるいは失敗するのかは、処理系定義である。
引数filename がヌルポインタでない場合は、まずストリームをクローズする。ここで発生したエラーは無視される。続いて、引数filename、mode の値を使って fopen関数を呼び出したときと同様の処理によって、ストリームを開きなおす。
この関数は、stdinstdoutstderr をファイルに結びつける用途で使用することができる。
注意
使用例
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    FILE* stream = freopen( "test.txt", "w", stdout );
    if( stream == NULL ){
        fputs( "freopen が失敗しました。\n", stderr );
        exit( EXIT_FAILURE );
    }

    fputs( "test message\n", stream );

    if( fclose( stream ) == EOF ){
        fputs( "ファイルクローズに失敗しました。\n", stderr );
        exit( EXIT_FAILURE );
    }

    return 0;
}

実行結果(標準出力):


実行結果(test.txt):

test message
関連
解説章


参考リンク

更新履歴

'2018/4/20 「NULL」という表記を「ヌルポインタ」に修正。

'2018/4/8 第1引数がヌルポインタの場合の動作について追記。

'2018/1/22 新規作成。





標準ライブラリのリファレンス(名前順)のトップページへ

標準ライブラリのリファレンス(ヘッダ別)のトップページへ

C言語編のトップページへ

Programming Place Plus のトップページへ


このエントリーをはてなブックマークに追加
rss1.0 取得ボタン RSS