有没有办法打开一个允许我只编辑几个字节的文件?

时间:2011-11-30 16:07:57

标签: c++ io

我正在编写一个使用zlib流压缩二进制数据的类。我有一个缓冲区,我填充输出流,一旦它变满,我使用fopen(filename, 'ab');...将缓冲区转储到一个文件这意味着我的程序只打开文件,只要它有一个文件写入它缓冲区充满了要转储的数据,它会去并且立即关闭它。

问题在于我的格式我在每个文件的开头使用一个8字节的头文件,其中包含原始长度和压缩长度,但在整个压缩过程结束之前我不知道这些值。

我想要做的是写入8个字节的零,然后附加我的所有压缩数据,然后在清理过程中返回结束,用大小数据填充这8个字节,但我似乎不能找到一种打开文件的方法,而不是将它全部带回内存。我只想编辑文件的前8个字节。我需要使用mmap吗?

1 个答案:

答案 0 :(得分:1)

在写出最后几个字节的数据后,使用rewind()将文件指针返回到文件的开头。然后,您可以输出8个字节的长度信息。