| ZIP_OPEN(3) | Library Functions Manual | ZIP_OPEN(3) |
zip_open,
zip_open_from_source — open
zip archive
libzip (-lzip)
#include
<zip.h>
zip_t *
zip_open(const
char *path, int
flags, int
*errorp);
zip_t *
zip_open_from_source(zip_source_t
*zs, int flags,
zip_error_t *ze);
The
zip_open()
function opens the zip archive specified by path and
returns a pointer to a struct zip, used to manipulate
the archive. The flags are specified by
or'ing
the following values, or 0 for none of them.
ZIP_CHECKCONSZIP_CREATEZIP_EXCLZIP_TRUNCATEZIP_RDONLYIf an error occurs and errorp is
non-NULL, it will be set to the corresponding error
code.
The
zip_open_from_source()
function opens a zip archive encapsulated by the zip_source
zs using the provided flags. In
case of error, the zip_error ze is filled in.
Upon successful completion zip_open() and
zip_open_from_source() return a
struct zip pointer. Otherwise,
NULL is returned and
zip_open() sets *errorp to
indicate the error, while
zip_open_from(source) sets
ze to indicate the error.
Here's an example of how you could report errors during
zip_open:
zip_t *za;
int err;
if ((za = zip_open(name, 0, &err)) == NULL) {
zip_error_t error;
zip_error_init_with_code(&error, err);
fprintf(stderr, "%s: cannot open zip archive '%s': %s\n",
progname, name, zip_error_strerror(&error));
zip_error_fini(&error);
return -1;
}
The archive specified by path is opened unless:
ZIP_ER_EXISTS]ZIP_EXCL is set.ZIP_ER_INCONS]ZIP_CHECKCONS but can also happen without it.ZIP_ER_INVAL]NULL.ZIP_ER_MEMORY]ZIP_ER_NOENT]ZIP_CREATE is not set.ZIP_ER_NOZIP]ZIP_ER_OPEN]ZIP_ER_READ]ZIP_ER_SEEK]zip_open() does not try to
create the file; this is done when calling
zip_close(3) and any errors, like
missing write permissions, will be reported then.
libzip(3), zip_close(3), zip_error_strerror(3), zip_fdopen(3), zip_source(5)
zip_open() and
zip_open_from_source() were added in libzip 1.0.
Dieter Baron <dillo@nih.at> and Thomas Klausner <wiz@gatalith.at>
| May 5, 2025 | NiH |