私はCプログラミング言語(第2版)を読んでいます。 157ページと158ページでは、著者はfopen
Unixシステムのコードを提供しています。著者は彫刻の最後に次のように付け加えた。
特に
fopen
バイナリアクセスの場合、「b」は認識できません。無意味UNIX システムでは、「+」を読み書きできません。
著者はなぜそれが無意味であると言うのですか? (ここで言及されている「b」と「+」はファイルアクセスモードです)
ベストアンサー1
一部の非Unixシステムでは、バイナリファイルとテキストファイルを異なる方法で処理します。たとえば、DOS、Windows、およびOS / 2(設計上は関係ありませんが、fopen
例として役に立ちます)でテキストモードでファイルを開き、ここに書き込むと、「C」ルール行の終わり(\n
)がプラットフォームに関係なく変換されます。必要です。他のシステムでは、バイナリモードでファイルを開くと、ロギングで処理されます。これがfopen
「b」フラグが制御するものです。このフラグなしで開かれたファイルはテキストモードで開き、このフラグで開かれたファイルはバイナリモードで開きます。 Unixスタイルのシステムはこれらの区別をしないので、「b」は無視されます(エラーは発生しません)。
fopen
私の本には「+」は言及されていませんが、当時はサポートされていなかったようです(今は本当にそうです)。