char *path, int
*zs, int flags,
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.
- Perform additional stricter consistency checks on the archive, and error if they fail.
- Create the archive if it does not exist.
- Error if archive already exists.
- If archive exists, ignore its current contents. In other words, handle it the same way as an empty archive.
- Open archive in read-only mode.
If an error occurs and errorp is
NULL, it will be set to the corresponding error
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.
zip_open_from_source() return a struct zip pointer. Otherwise,
NULLis returned and
zip_open() sets *errorp to indicate the error, while
zip_open_from(source) sets ze to indicate the error.
- The file specified by path exists and
- Inconsistencies were found in the file specified by
path. This error is often caused by specifying
ZIP_CHECKCONSbut can also happen without it.
- The path argument is
- Required memory could not be allocated.
- The file specified by path does not exist and
ZIP_CREATEis not set.
- The file specified by path is not a zip archive.
- The file specified by path could not be opened.
- A read error occurred; see errno for details.
- The file specified by path does not allow seeks.
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.
zip_open_from_source() were added in libzip 1.0.