我尝试在C中使用fopen,第二个参数是打开模式。两种模式“ r”和“ rb”往往使我感到困惑。看来他们是一样的。但是有时最好使用“ rb”。那么,为什么“ r”存在?向我详细说明或提供示例。谢谢。
3 回答
慕哥9229398
TA贡献1877条经验 获得超6个赞
在Linux和Unix在一般情况下,"r"和"rb"是相同的。更具体地说,在文本模式和二进制模式下FILE通过fopen()对文件进行访问而获得的指针在Unix上的行为相同。在Windows上,通常,在使用多个字符表示“ 换行符 ”的系统上,以文本模式打开的文件的行为就好像所有这些字符只是一个字符一样'\n'。
如果要在任何系统上可移植地读/写文本文件,请使用"r"和"w"中的fopen()。这样可以保证文件被正确地读写。如果要打开二进制文件,请使用"rb"和"wb",这样不幸的换行符翻译不会弄乱您的数据。
请注意,底层系统为您执行换行翻译的结果是,您无法确定使用fseek(file,0,SEEK_END)从文件中读取的字节数。
- 3 回答
- 0 关注
- 2539 浏览
添加回答
举报
0/150
提交
取消