std::freopen
提供: cppreference.com
<tbody>
</tbody>
| ヘッダ <cstdio> で定義
|
||
std::FILE* freopen( const char* filename, const char* mode, std::FILE* stream ); |
||
まず、あらゆるエラーを無視して stream に紐付けられたファイルを閉じることを試みます。 その後、 filename がヌルでなければ、 fopen によって行われたかのように、 mode を使用して filename で指定されたファイルを開くことを試み、そのファイルを stream の指すファイルストリームに紐付けます。 filename がヌルポインタの場合は、すでに stream に紐付けられているファイルを開き直すことを試みます (この場合にモード変更が可能かどうかは処理系定義です)。
引数
| filename | - | ファイルストリームを紐付けるファイル名 | ||||||||||||||||||||||||||||||||||||||||||||||||||
| mode | - | 新しいファイルアクセスモードを決定するためのヌル終端文字列
| ||||||||||||||||||||||||||||||||||||||||||||||||||
| stream | - | 変更するファイルストリーム | ||||||||||||||||||||||||||||||||||||||||||||||||||
戻り値
成功した場合は stream、失敗した場合は NULL。
ノート
freopen は入出力操作または std::fwide によっていったん確立されたストリームのナロー/ワイド指向を変更する唯一の方法です。
例
以下のコードは stdout をファイルにリダイレクトします
Run this code
#include <cstdio>
int main()
{
std::printf("stdout is printed to console\n");
if(std::freopen("redir.txt", "w", stdout)) {
std::printf("stdout is redirected to a file\n"); // this is written to redir.txt
std::fclose(stdout);
}
}
出力:
stdout is printed to console
関連項目
| ファイルを開きます (関数) | |
| ファイルを閉じます (関数) | |
freopen の C言語リファレンス
| |