2017-05-15 126 views
1

fopen()を使用しているとき、私は1の代わりに、他のを選ぶだろう、なぜ私はC.fopen()の "rb +"と "ab"の違いは何ですか?

"ab""rb+"モードの違いを理解していませんか?

+2

'a'モードでは、シークまたは読み取りができません。すべての書き込みがファイルの末尾に追加されます。 'r +'モードでは、シーク、リード、ライトが可能です。 –

+0

.. [man 3 fopen](http://man7.org/linux/man-pages/man3/fopen.3.html)に明示的に記載されています。 –

+0

https://www.programiz.com/c-programming/c-file-input-output – rsp

答えて

4

上記のモード指定子は、テキストファイルとして開きます。 ファイルをバイナリファイルとして開くには、"b"文字をモード文字列に含まれる にする必要があります。または文字とするため"+"符号間 を挿入する:この追加"b"文字は は("rb""wb""ab""r+b」、"w+b""a+b"従って以下 化合物モードを作る)文字列の最後に付加することができるいずれか混合モード("rb+""wb+""ab+")。

fopen documentationから、私はあなたが質問をする前に読んでお勧めします。それは、あなたの戻り値を可能なパラメータに関する多くの情報を提供します

"a"は= 追記:ファイルの終わりに出力するためのファイルを開く同じ文書からの、同様の機能等

また、。出力操作では、ファイルの末尾に常にデータが書き込まれ、展開されます。再配置操作(fseek,,rewind)は無視されます。ファイルが存在しない場合は作成されます。

"r+" = 読み取り/更新:更新用ファイルを開く(入力と出力の両方)。ファイルが存在する必要があります。

関連する問題