mode 文字列 その1
ANSI互換あり
mode文字列には、ファイルに対して要求する次のアクセスモードを指定します。
r
読み出し用に開きます。ファイルが存在しない場合や見つからない場合、fopen呼び出しは失敗します。
w
書き込み用に空のファイルを開きます。指定したファイルが既に存在すると、 そのファイルの内容は破棄されます。
a
末尾に書き込みができるようにファイルを開きます(追加モード)。 EOFマーカーを削除せずにファイルに新しいデータを書き込みます。 ファイルが存在しない場合は作成します。
r+
読み出しと書き込みの両方のモードで開きます。ファイルが存在している必要があります。
w+
読み出しと書き込みの両方のモードで空のファイルを開きます。 指定したファイルが既に存在すると、そのファイルの内容は破棄されます。
a+
読み出しと追加の両方のモードでファイルを開きます。
追加時には、ファイルに新しいデータを書き込む前に EOFマーカーが削除され、
書き込みが終了すると EOFマーカーが復元します。ファイルが存在しない場合は作成します。
ファイルを"a"または"a+"のアクセス モードで開くと、
書き込み操作はすべてファイルの終端から行われます。
ファイルポインタはfseek関数またはrewind関数で移動できますが、
書き込み操作の前に必ずファイルの終端に戻されます。したがって、既存のデータは上書きされません。
"a"モードでは、ファイルへの追加の前にEOFマーカーは削除されません。 追加が行われても、MS-DOS TYPEコマンドでは元のEOFマーカーまでのデータしか表示されず、 ファイルに追加されたデータは表示されません。 "a+"モードでは、ファイルへの追加の前にEOFマーカーが削除されます。 追加が終了すると、MS-DOS TYPEコマンドでファイル内すべてのデータが表示されます。 CTRL+Z EOFマーカーで終了するストリームファイルの末尾にデータを追加するには、 "a+"モードを使用する必要があります。
"r+"、"w+"、"a+"のいずれかのアクセス種別を指定すると、 読み出しと書き込みの両方ができます(ファイルは"更新"モードで開いたことになります)。 ただし、読み出しと書き込みを切り替えるときは、 その前にfsetpos、fseek、rewindのいずれかの関数を実行する必要があります。 必要に応じて、fsetpos関数またはfseek関数には現在位置を指定できます。
上記の値のほかに、modeへMicrosoft固有に拡張された文字を追加すると、 改行文字の変換モードを指定できます。