読み書き用の「+」と同様に、Unixでバイナリアクセス用にファイルを開くのが「無意味」なのはなぜですか?

読み書き用の「+」と同様に、Unixでバイナリアクセス用にファイルを開くのが「無意味」なのはなぜですか?

私はCプログラミング言語(第2版)を読んでいます。 157ページと158ページでは、著者はfopenUnixシステムのコードを提供しています。著者は彫刻の最後に次のように付け加えた。

特にfopenバイナリアクセスの場合、「b」は認識できません。無意味UNIX システムでは、「+」を読み書きできません。

著者はなぜそれが無意味であると言うのですか? (ここで言及されている「b」と「+」はファイルアクセスモードです)

ベストアンサー1

一部の非Unixシステムでは、バイナリファイルとテキストファイルを異なる方法で処理します。たとえば、DOS、Windows、およびOS / 2(設計上は関係ありませんが、fopen例として役に立ちます)でテキストモードでファイルを開き、ここに書き込むと、「C」ルール行の終わり(\n)がプラットフォームに関係なく変換されます。必要です。他のシステムでは、バイナリモードでファイルを開くと、ロギングで処理されます。これがfopen「b」フラグが制御するものです。このフラグなしで開かれたファイルはテキストモードで開き、このフラグで開かれたファイルはバイナリモードで開きます。 Unixスタイルのシステムはこれらの区別をしないので、「b」は無視されます(エラーは発生しません)。

fopen私の本には「+」は言及されていませんが、当時はサポートされていなかったようです(今は本当にそうです)。

おすすめ記事