需求

使用 fwrite 写入时,返回值和字节数目对应不上,这是什么情况?

解决

因为 fwritewrite 之类的系统直接提供的接口不一样, fwrite 返回的是写入的数据块的个数。如果数据是以字节作为数据来写入,那么返回值就是字节数,否则返回值是和 count 这个参数相关联,而不是单纯的字节数。

size_t fwrite(const void* buffer, size_t size, size_t count, FILE* stream);
// -- buffer:指向数据块的指针
// -- size:每个数据的大小,单位为Byte(例如:sizeof(int)就是4)
// -- count:数据个数
// -- stream:文件指针

参考

fwrite()的返回值随着格式的不同返回值也不同;

fopen()、fwrite()、fread()函数使用说明与示例

C 库函数 - fwrite()