C言語 ファイルオープンのモード - stdio.h - [ fopen ]
2008.09.17 Wednesday | by LRESULT
前回は、ファイルを開いてみました。
ファイルを開く時は fopen()関数のモード引数(第2引数)を、
読み取り用の"r"に設定しましたが、
書き込む場合や、追加する場合のオープンモードを見てみます。
オープンモードの文字列は最大3文字で構成されます。
r | [Read] ファイル読み取りモード ファイルが無い場合は、NULLを返す。 |
---|---|
w | [Write] ファイル書き込みモード ファイルが無い場合は、新規作成する。 ファイルがある場合は、元ファイルの内容を破棄して書き込む。 |
a | [Append] ファイル追加書き込みモード ファイルが無い場合は、新規作成する。 ファイルがある場合は、終端に追加する。 |
b | [Binary] バイナリモード テキストファイルではなく、バイナリとして開く。 |
---|---|
+ | [Plus] 複合モード 第1文字目群に、対となるモードを追加し読み書きを両方出来るようにする。 |
※ 第2文字目と第3文字目は、入れ替えでも大丈夫です。
バイナリモードとテキストモードの違いとは?
バイナリモード "b" を指定しない場合はテキストモードになります。
テキストモードでは、
ファイル読み取り: 改行記号CR+LF[¥r¥n](0x0D, 0x0A)を、LF[¥n](0x0A)に変換
ファイル書き込み: 改行記号LF[¥n](0x0A)を、CR+LF[¥r¥n](0x0D, 0x0A)に変換
バイナリモードでは、読み書き両方とも変換せずに読み書きします。
"r" | 読み取りモード |
---|---|
"w" | 書き込みモード |
"a" | 追加書き込みモード |
"rb" | バイナリ読み取りモード |
"wb" | バイナリ書き込みモード |
"ab" | バイナリ追加書き込みモード |
"r+" | 読み取り+書き込みモード |
"w+" | 書き込み+読み取りモード |
"a+" | 追加書き込み+読み取りモード |
"r+b" or "rb+" | バイナリ読み取り+書き込みモード |
"w+b" or "wb+" | バイナリ書き込み+読み取りモード |
"a+b" or "ab+" | バイナリ追加書き込み+読み取りモード |