freopen,_wfreopen

提供: RAD Studio
移動先: 案内検索

stdio.h:インデックス への移動


ヘッダーファイル

stdio.h

カテゴリ

入出力ルーチン

プロトタイプ

FILE *freopen(const char *filename, const char *mode, FILE *stream);

FILE *_wfreopen(const wchar_t *filename, const wchar_t *mode, FILE *stream);

説明

オープンストリームに新しいファイルを関連付けます。

freopen は,オープンストリームを指定されたファイルに置き換えます。また,正しく開かれたかどうかにかかわらずストリームを閉じます。freopen は,stdin,stdout,または stderr に関連付けられたファイルを変更するために役立ちます。

fopen の呼び出しに使用される mode 文字列は,次のいずれかの値です。

r 読み出し専用で開きます。 w 書き込み用に作成します。 a 追加します。ファイルの終わりに書き込むようにファイルを開きます。ファイルが存在しない場合は,書き込み用にファイルを作成します。 r+ 既存のファイルを更新(読み出しと書き込み)用に開きます。 w+ 更新(読み出しと書き込み)用に新しいファイルを作成します。 a+ 追加用に開きます。ファイルの終わりで更新するために開きます(ファイルが存在しない場合は作成する)。



指定したファイルをテキストモードで開くまたは作成するには,mode 文字列に t を追加します(rt,w+t など)。同様に,バイナリモードを指定するには,mode 文字列に b を追加します(wb,a+b など)。

mode 文字列で t または b が指定されていない場合,モードは,グローバル変数 _fmode で制御されます。_fmode が O_BINARY に設定されている場合,ファイルはバイナリモードで開かれます。_fmode が O_TEXT に設定されている場合,ファイルはテキストモードで開かれます。これらの O_... 定数は,fcntl.h で定義されています。

ファイルを更新用に開く場合は,取得したストリームで入力と出力の両方を実行できます。

  • 出力の直後に入力を続けることはできません。間に fseek または rewind を入れる必要があります。
  • 入力の直後に出力を続けることはできません。間に fseek または rewind を入れるか,入力がファイルの終わり(EOF)に到達する必要があります。

戻り値

成功した場合,freopen は,引数 stream を返します。

エラーが発生した場合は,NULL を返します。



 #include <stdio.h>
 int main(void)
 {
    /* 標準出力をファイルにリダイレクトします */
    if (freopen("OUTPUT.FIL", "w", stdout)
        == NULL)
       fprintf(stderr, "error redirecting stdout\n");
    /* この出力はファイルに行われます */
    printf("This will go into a file.");
    /* 標準出力ストリームを閉じます */
    fclose(stdout);
    return 0;
 }



移植性



POSIX Win32 ANSI C ANSI C++

freopen

+

+

+

+

_wfreopen

NT のみ