关于fopen中的二进制模式

时间:2018-06-07 10:28:47

标签: c fopen stdio

我已经阅读了关于fopen访问模式的C++ Reference,但我不理解"a+b""ab+"之间,或"w+b"和{{之间的区别1}}。

3 个答案:

答案 0 :(得分:2)

模式标志的排序无关紧要。因此ab+a+b是等效的。

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

答案 1 :(得分:1)

b+的排序无关紧要。没有区别。因此a+bab+意味着同样的事情。

答案 2 :(得分:1)

这两种形式是等效的。

来自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本身,它意味着该文件用作纯二进制文件,而不是文本文件。