C言語 - 標準ライブラリ - stdio.h - fopen
- 1. 概要
- 2. 書式
- 3. モード
1. 概要
ファイルオープンざんす。
2. 書式
#include <stdio.h>
FILE *fopen(const char *path, const char *mode);
FILE *fdopen(int fildes, const char *mode);
FILE *freopen(const char *path, const char *mode, FILE *stream);
3. モード
第2引数の「mode」は、以下の意味を持ちます。
値 | 意味 | 備考 |
r | テキストファイルを読込み用にオープンします。 ストリームは、ファイルの最初に位置付けられます。 | |
r+ | 読込み用と書込み用にオープンします。 ストリームは、ファイルの最初に位置付けられます。 | |
w | 書込み用に、ファイルを長さ 0 に切りつめるか、テキストファイルを作成します。 ストリームは、ファイルの最初に位置付けられます。 | |
w+ | 読込み用と書込み用にオープンします。 ファイルが存在しない場合はそのファイルが作成され、存在する場合は切りつめられます。 ストリームは、ファイルの最初に位置付けられます。 | |
a | 書込み用にオープンします。 ファイルが存在しない場合はそのファイルが作成されます。ストリームは、ファイルの最後に位置付けられます。
それに続くファイルへの書き込みは、 fseek(3) のような操作の介在に関わりなく、常にファイルの現時点での最後へと行われます。 | |
a+ | 読込み用と書込み用にオープンします。 ファイルが存在しない場合はそのファイルが作成されます。
ストリームは、ファイルの最後に位置付けられます。 それに続くファイルへの書き込みは、 fseek(3) のような操作の介在に関わりなく、常にファイルの現時点での最後へと行われます。 | |
この他、「b」として、バイナリを意味するものがあったりします。
これは、「VC」で「Windows」でコーディングする場合、特に意味があり、「b」がないとレコードの終わりに意図しない改行がついたりします。
しかし、「Windows」以外の「clang」上だと例えば、マニュアルに下記のような注釈が付きます。
「mode」文字列には、3 番目の文字として、または上で説明した 2 文字からなる文字列の間に指定する文字として、文字「b」を含めることができます。これは「ISO/IEC 9899:1990 (ISO C89)」 との互換性を保つためのもので、効果はありません。 「b」は無視されます。
|
|