fopen,_wfopen
stdio.h:インデックス への移動
ヘッダーファイル
stdio.h
カテゴリ
入出力ルーチン
プロトタイプ
FILE *fopen(const char *filename, const char *mode); FILE *_wfopen(const wchar_t *filename, const wchar_t *mode);
説明
ストリームを開きます。
fopen は,filename で指定されたファイルを開き,そのファイルにストリームを関連付けます。fopen は,後続の操作でストリームを特定するために使用されるポインタを返します。
fopen の呼び出しに使用される mode 文字列は,次のいずれかの値です。
r |
読み出し専用で開きます。 |
w |
書き込み用に作成します。その名前のファイルがすでに存在する場合は,上書きされます。 |
a |
追加します。ファイルの終わりに書き込むようにファイルを開きます。ファイルが存在しない場合は,書き込み用にファイルを作成します。 |
r+ |
既存のファイルを更新(読み出しと書き込み)用に開きます。 |
w+ |
更新(読み出しと書き込み)用に新しいファイルを作成します。その名前のファイルがすでに存在する場合は,上書きされます。 |
a+ |
追加用に開きます。ファイルの終わりで更新するために開きます(ファイルが存在しない場合は作成する)。 |
指定したファイルをテキストモードで開くまたは作成するには,mode 文字列に t を追加します(rt,w+t など)。同様に,バイナリモードを指定するには,mode 文字列に b を追加します(wb,a+b など)。fopen では,mode 文字列のアルファベット文字と + 文字の間に t または b を挿入することもできます。たとえば,rt+ は r+t と同じです。
mode 文字列で t または b が指定されていない場合,モードは,グローバル変数 _fmode で制御されます。_fmode が O_BINARY に設定されている場合,ファイルはバイナリモードで開かれます。_fmode が O_TEXT に設定されている場合,ファイルはテキストモードで開かれます。これらの O_... 定数は,fcntl.h で定義されています。
ファイルを更新用に開く場合は,取得したストリームで入力と出力の両方を実行できます。
- 出力の直後に入力を続けることはできません。間に fseek または rewind を入れる必要があります。
- 入力の直後に出力を続けることはできません。間に fseek または rewind を入れるか,入力がファイルの終わり(EOF)に到達する必要があります。
戻り値
成功した場合,fopen は,新しく開かれたストリームを指すポインタを返します。エラーの場合は,NULL を返します。
移植性
POSIX | Win32 | ANSI C | ANSI C++ | |
---|---|---|---|---|
fopen |
+ |
+ |
+ |
+ |
_wfopen |
NT のみ |