【问题标题】:zlib gzclose: How to detect a successful file closure?zlib gzclose:如何检测成功的文件关闭?
【发布时间】:2021-08-02 11:22:51
【问题描述】:

我使用 zlib 压缩文件。一切正常。操作完成后,我调用gzclose(file)刷新并关闭gzip文件。根据文档,gzclose 返回一个int,它提供了gzclose 操作的成功或失败。由于可能有很多失败原因,检查每个错误代码对我来说是不可行的。我选择检查操作是否成功并分别处理错误代码。我在我提到的任何文档中都找不到成功 gzclose 的返回码。

doc

【问题讨论】:

  • "成功时,gzclose() 应返回 Z_OK。否则,gzclose() 应返回错误值,如下所述" google 中的第一个条目 "gzclose" "#define Z_OK 0" 第一个条目在谷歌搜索“zlib.h”时

标签: c++ c++11 zlib


【解决方案1】:

zlib 函数记录在zlib.h 中。您还可以在zlib Manual 中找到稍微格式化的 zlib.h。在那里你会发现:

ZEXTERN int ZEXPORT gzclose OF((gzFile file));

如有必要,刷新所有待处理的输出,关闭压缩文件 并解除分配(解)压缩状态。请注意,一旦文件是 关闭,你不能用文件调用gzerror,因为它的结构有 被解除分配。 gzclose 不能在 同一个文件,就像free 不能在同一个文件上被多次调用 分配。如果文件无效,gzclose 将返回 Z_STREAM_ERRORZ_ERRNO 文件操作错误,Z_MEM_ERROR 内存不足, Z_BUF_ERROR 如果最后一次读取在 gzip 流的中间结束,或者 Z_OK 成功。

【讨论】:

    猜你喜欢
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-16
    • 1970-01-01
    相关资源
    最近更新 更多