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固有に拡張された文字を追加すると、 改行文字の変換モードを指定できます。