需求
使用 fwrite
写入时,返回值和字节数目对应不上,这是什么情况?
解决
因为 fwrite
和 write
之类的系统直接提供的接口不一样, fwrite
返回的是写入的数据块的个数。如果数据是以字节作为数据来写入,那么返回值就是字节数,否则返回值是和 count 这个参数相关联,而不是单纯的字节数。
size_t fwrite(const void* buffer, size_t size, size_t count, FILE* stream);
// -- buffer:指向数据块的指针
// -- size:每个数据的大小,单位为Byte(例如:sizeof(int)就是4)
// -- count:数据个数
// -- stream:文件指针