- zip_open(const char *path, int flags, int *errorp);
- zip_open_from_source(zip_source_t *zs, int flags, zip_error_t *ze);
- 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 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 VALUESUpon 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.
ERRORSThe archive specified by path is opened unless:
- The file specified by path exists and ZIP_EXCL is set.
- Inconsistencies were found in the file specified by path. This error is often caused by specifying ZIP_CHECKCONS but can also happen without it.
- The path argument is NULL.
- Required memory could not be allocated.
- The file specified by path does not exist and ZIP_CREATE is 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.