关于 fopen 中的二进制模式

About binary modes in fopen

我已经阅读了关于 fopen 访问模式的 C++ Reference,但我不明白 "a+b""ab+" 之间的区别,或者 "w+b""wb+".

b+ 的顺序无关紧要。没有区别。所以 a+bab+ 意思是一样的。

两种形式是等价的。

来自C标准C11 7.21.5.2:

w+bx or wb+x      create binary file for update  
a+b or ab+        append; open or create binary file for update, writing at end-of-file

至于b本身,它意味着该文件被用作纯二进制文件,而不是文本文件。

模式标志的顺序不相关。所以 ab+a+b 是等价的。

b标志以二进制模式打开文件,禁用DOS和Windows中对某些字符的特殊处理,但对macOS和POSIX系统没有影响。