ZIP_OPEN(3) Library Functions Manual ZIP_OPEN(3) NAME zip_open, zip_open_from_source - open zip archive LIBRARY libzip (-lzip) SYNOPSIS #include 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); DESCRIPTION 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_CHECKCONS Perform additional stricter consistency checks on the archive, and error if they fail. ZIP_CREATE Create the archive if it does not exist. ZIP_EXCL Error if archive already exists. ZIP_TRUNCATE If archive exists, ignore its current contents. In other words, handle it the same way as an empty archive. ZIP_RDONLY Open archive in read-only mode. If 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. RETURN VALUES 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. EXAMPLES 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; } ERRORS The archive specified by path is opened unless: [ZIP_ER_EXISTS] The file specified by path exists and ZIP_EXCL is set. [ZIP_ER_INCONS] Inconsistencies were found in the file specified by path. This error is often caused by specifying ZIP_CHECKCONS but can also happen without it. [ZIP_ER_INVAL] The path argument is NULL. [ZIP_ER_MEMORY] Required memory could not be allocated. [ZIP_ER_NOENT] The file specified by path does not exist and ZIP_CREATE is not set. [ZIP_ER_NOZIP] The file specified by path is not a zip archive. [ZIP_ER_OPEN] The file specified by path could not be opened. [ZIP_ER_READ] A read error occurred; see errno for details. [ZIP_ER_SEEK] The file specified by path does not allow seeks. For newly created archives, 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. SEE ALSO libzip(3), zip_close(3), zip_error_strerror(3), zip_fdopen(3) HISTORY zip_open() and zip_open_from_source() were added in libzip 1.0. AUTHORS Dieter Baron and Thomas Klausner Linux 6.7.4-arch1-1 October 9, 2022 Linux 6.7.4-arch1-1