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

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

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


freopen関数 🔗

概要 ファイルを開きなおす
ヘッダ stdio.h
形式 FILE* freopen(const char* restrict filename, const char* restrict mode, FILE* restrict stream);
引数 filename ファイル名。あるいはヌルポインタ
mode モード。
stream すでに開かれているストリーム。
戻り値 成功した場合は、引数stream が返される。失敗した場合は、ヌルポインタを返す。
詳細

引数filename がヌルポインタの場合は、現時点でストリームに結び付けられているファイルを、引数mode のモードで開きなおす。どのような状況であれば成功あるいは失敗するのかは、処理系定義📘である。

引数filename がヌルポインタでない場合は、まずストリームをクローズする。ここで発生したエラーは無視される。続いて、引数filename、mode の値を使って fopen関数を呼び出したときと同様の処理によって、ストリームを開きなおす。

引数mode に指定できる内容は fopen関数と同様であるのでそちらを参照のこと。

この関数は、stdinstdoutstderr をファイルに結びつける用途で使用できる。
注意 ファイルの使用を終えたら fclose関数で閉じる。
使用例
#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);
    }

    if (fputs("test message\n", stream) == EOF) {
        fputs("ファイルへの書き込みに失敗しました。\n", stderr);
        exit(EXIT_FAILURE);
    }

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

実行結果(標準出力):

実行結果(test.txt):

test message
関連 ファイルを閉じるには fclose関数を用いる。
解説章


参考リンク 🔗

本ページはアフィリエイトプログラムによる収益を得ています。
以下のリンクから商品を購入されると、Programming Place 管理者に紹介料が支払われています。


更新履歴 🔗



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

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

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

Programming Place Plus のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
X で ポストフォロー LINE で送る noteで書く
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー
先頭へ戻る