win32下fread最大的size是多少?

linyis   2007-12-25 13:53 楼主
在WIN32下使用fread读文件,但是参数中的size不能太大,我测试发现最大为2420,再大的size则返回的也是2420

这个是怎么回事??

回复评论 (5)

不是很清楚,我也知道有限制。
fwrite也有
点赞  2007-12-25 14:39
不可能,1M都可以 ,,
点赞  2007-12-25 15:33
是啊,只要你内存足够,应该最大是 2的32次方吧/
点赞  2007-12-25 16:18

今天测试了一下。
fread:
size是单个元素的大小,
就是每次读入的大小。
如果文件的大小比size小,那么fread的返回就是0
fwrite:
char mm[] = "123123";
int count = fwrite(mm, 100, 10, file);

如果实际写入的比size小,返回为0

这也算是限制吧。
点赞  2007-12-26 09:55
限制是有的 和内存大小无关,大家可以做一下测试!Win32环境下也有这个限制。
解决方法就是不要使用fread/fwrite,使用WIN32推荐的ReadFile

根本原因是怎么回事 我不知道
点赞  2008-1-3 08:58
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复