使用fwrite C ++将压缩数据写入文件

时间:2015-10-28 17:20:14

标签: c++ compression fwrite

我有一个大小为42131221字节(42.1MB)的缓冲区,用于存储一些压缩数据。只有前20MB实际存储压缩数据,我试图使用fwrite:

将其写入文件
fwrite (buffer , WHAT_GOES_HERE, buffer_length, pFile);

第二个参数需要写入每个元素的大小,但这不适用于这种情况,因为我只想编写整个缓冲区,因为它是压缩的,所以不存在大小每个元素。

关于如何让它发挥作用的任何想法?

2 个答案:

答案 0 :(得分:1)

WHAT_GOES_HERE应该是sizeof(缓冲区的类型)。此外,buffer_length应该是您要写入文件的“类型”的数量。我提到这个,因为你似乎不想写整个缓冲区而只是20MB。

答案 1 :(得分:1)

fwrite适用于缓冲的流。

write是基于文件描述符的低级API。它不知道缓冲。

经验法则是,

如果要编写单个大缓冲区,请进行写入。 如果你想用较小的块写,你可以使用fwrite。

所以,你可以去写这里。