我正在使用gzopen("filename", "wb9");
将数据写入我使用gzwrite()
创建的文件。
gztell()
返回写入其中的未压缩数据的偏移量,从而返回字节数。
是否有可能在写入时知道输出文件的压缩文件大小?或者由于压缩算法会有限制吗?
答案 0 :(得分:1)
ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile file));
返回 正在读取或写入的文件中的当前偏移量。此偏移包括 gzip流之前的字节数,例如 追加或使用gzdopen()进行阅读。在阅读时, offset不包括尚未使用的缓冲输入。此信息 可用于进度指示器。出错时,gzoffset()返回-1。
确保刷新输出...
另一个答案,尝试stat
文件,如果你只需要它的大小我看不出gz
文件和任何其他文件之间的任何区别
https://linux.die.net/man/2/stat
int stat(const char *path, struct stat *buf);
struct stat {
...
off_t st_size; /* total size, in bytes */
...
};
确定这会给你所需要的......