zip_close - Man Page
close zip archive
Library
libzip (-lzip)
Synopsis
#include <zip.h>
int 
 zip_close(zip_t *archive);
Description
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.
See Also
libzip(3), zip_discard(3), zip_fdopen(3), zip_get_error(3), zip_open(3), zip_register_cancel_callback_with_state(3), zip_register_progress_callback_with_state(3), zip_set_archive_flag(3), zip_strerror(3)
History
zip_close() was added in libzip 0.6.
Authors
Dieter Baron <dillo@nih.at> and Thomas Klausner <wiz@gatalith.at>
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.
Referenced By
libzip(3), zip(5), zip_discard(3), zip_fdopen(3), zip_open(3), zip_register_cancel_callback_with_state(3), zip_register_progress_callback(3), zip_register_progress_callback_with_state(3), zip_source(5), zip_source_file(3), zip_source_filep(3).