C标准库提供的文件函数fread和fwrite的原型为:
第一次用的时候觉得接口不够简洁:size*count来表示一共有多少字节就行了,不必分开成两个参数。
由于头脑中有这种先入为主的思想,所以每次使用这两个函数的时候,size和count的顺序都是随意的,反正乘起来是那么多个字节就行。
其实不是这样的!这两个函数的size的大小是有限制的,fread中,如果size过大,读出数据会失败;fwrite中,size过大,会导致返回的写入字节数不正确,但是数据还是写成功了。size的最大限制是多少目前还没有测试,所以大家使用的时候注意不要把size这个值设置得过大。
size_t fread(
void * buffer,
size_t size,
size_t count,
FILE * stream
);
size_t fwrite(
const void * buffer,
size_t size,
size_t count,
FILE * stream
);
void * buffer,
size_t size,
size_t count,
FILE * stream
);
size_t fwrite(
const void * buffer,
size_t size,
size_t count,
FILE * stream
);
由于头脑中有这种先入为主的思想,所以每次使用这两个函数的时候,size和count的顺序都是随意的,反正乘起来是那么多个字节就行。
其实不是这样的!这两个函数的size的大小是有限制的,fread中,如果size过大,读出数据会失败;fwrite中,size过大,会导致返回的写入字节数不正确,但是数据还是写成功了。size的最大限制是多少目前还没有测试,所以大家使用的时候注意不要把size这个值设置得过大。