我有一个大小为42131221字节(42.1MB)的缓冲区,用于存储一些压缩数据。只有前20MB实际存储压缩数据,我试图使用fwrite:
将其写入文件fwrite (buffer , WHAT_GOES_HERE, buffer_length, pFile);
第二个参数需要写入每个元素的大小,但这不适用于这种情况,因为我只想编写整个缓冲区,因为它是压缩的,所以不存在大小每个元素。
关于如何让它发挥作用的任何想法?
答案 0 :(得分:1)
WHAT_GOES_HERE应该是sizeof(缓冲区的类型)。此外,buffer_length应该是您要写入文件的“类型”的数量。我提到这个,因为你似乎不想写整个缓冲区而只是20MB。
答案 1 :(得分:1)
fwrite适用于缓冲的流。
write是基于文件描述符的低级API。它不知道缓冲。
经验法则是,
如果要编写单个大缓冲区,请进行写入。 如果你想用较小的块写,你可以使用fwrite。
所以,你可以去写这里。