zip_close(3)

zip_close3

Close zip archive

Usage

#include <zip.h>

int

zip_close(zip_t *archive);

Library

libzip (-lzip)

Overview

The zip_close() function writes any changes made to archive to disk. If archive contains no files, the file is completely removed (no empty archive is written), unless the archive flag ZIP_AFL_CREATE_OR_KEEP_FILE_FOR_EMPTY_ARCHIVE is set. If successful, archive is freed. Otherwise archive is left unchanged and must still be freed.

To close and free a zip archive without saving changes, use zip_discard(3).

Progress updates for GUIs can be implemented using zip_register_progress_callback_with_state(3). Cancelling the write of an archive during zip_close can be implemented using zip_register_cancel_callback_with_state(3).

Return values

Upon successful completion 0 is returned. Otherwise, -1 is returned and the error code in archive is set to indicate the error.

Errors

zip_close() will fail if:

[ZIP_ER_EOF]

Unexpected end-of-file found while reading from a file.

[ZIP_ER_INTERNAL]

The callback function of an added or replaced file returned an error but failed to report which.

[ZIP_ER_INVAL]

The path argument is NULL.

[ZIP_ER_MEMORY]

Required memory could not be allocated.

[ZIP_ER_NOZIP]

File is not a zip archive.

[ZIP_ER_READ]

A file read failed.

[ZIP_ER_RENAME]

A temporary file could not be renamed to its final name.

[ZIP_ER_SEEK]

A file seek failed.

[ZIP_ER_TMPOPEN]

A temporary file could not be created.

[ZIP_ER_WRITE]

A file write failed.

[ZIP_ER_ZLIB]

An error occurred while (de)compressing a stream with zlib(3).

Additionally, any errors returned by the callback function for added or replaced files will be passed back.

Caveats

Please note that all indices, zip_stat(3) information and other data about the archive is invalid after zip_close. When you open the same file again, it will be a completely new zip_t structure.

Releases

10 releases since Debian 5.0 (Lenny); the text changed 7 times.

  1. 5.0
  2. 6.0
  3. 7
  4. 8
  5. 9
  6. 10
  7. 11–12
  8. 13–Arch

History

zip_close() was added in libzip 0.6.

Authors

Dieter Baron ⟨[email protected]⟩ and Thomas Klausner ⟨[email protected]⟩

From libzip 1.11.4-1 in Arch Linux 2026-11-01. Parsed by carta from the page's mdoc source.