使用fread读取二进制文件时,一定打开的时候使用‘rb’,不要只写r

来源:互联网 发布:sql注入实例 编辑:程序博客网 时间:2024/04/26 09:20

调了那么久,其实就是fopen时候不能只写‘r’,还要写‘rb’。

不然会造成fread读不完指定的字节数。。。


也就是说如果是linux上的程序,r和rb没有什么区别,
如果这段代码放到windows上,就不灵了。

r遇到0x0d后面没有0x0a会自动加一个,遇到0x1a会忽略后面的内容
rb不会

r 读到\r\n会改为\n,读到\x1a会返回EOF
rb 读到什么返回什么,读到文件末尾才会返回EOF

怪不得大牛的代码在linux下没问题,我的差不多的在windows下编译就有问题。

原创粉丝点击