Close zip archive
libzip (-lzip)
#include <zip.h>
int
zip_close(struct zip *archive);
The zip_close() function closes archive and frees the memory allocated for it. If any files within were changed, those changes are written to disk first. If writing changes fails, zip_close() fails and archive is left unchanged. If archive contains no files, the file is completely removed (no empty archive is written).
To close a zip file without saving changes, use zip_discard(3).
Upon successful completion 0 is returned. Otherwise, -1 is returned and the error code in archive is set to indicate the error.
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.
Dieter Baron <[email protected]> and Thomas Klausner <[email protected]>