www.LinuxHowtos.org
ZIP_OPEN
Section: C Library Functions (3)Index Return to Main Contents
BSD mandoc
NAME
zip_open zip_open_from_source - open zip archiveLIBRARY
libzip -lzip)SYNOPSIS
In zip.h Ft zip_t * Fn zip_open const char *path int flags int *errorp Ft zip_t * Fn zip_open_from_source zip_source_t *zs int flags zip_error_t *zeDESCRIPTION
The Fn zip_open function opens the zip archive specified by path and returns a pointer to a Ft struct zip , used to manipulate the archive. The Fa 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 rea-only mode.
If an error occurs and errorp is no- NULL it will be set to the corresponding error code.
The Fn zip_open_from_source function opens a zip archive encapsulated by the zip_source Fa zs using the provided Fa flags . In case of error, the zip_error Fa ze is filled in.
RETURN VALUES
Upon successful completion Fn zip_open and Fn zip_open_from_source return a Ft struct zip pointer. Otherwise, NULL is returned and Fn zip_open sets *errorp to indicate the error, while Fn zip_open_from source sets ze to indicate the error.EXAMPLES
Here's an example of how you could report errors during :
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': %sn",
progname, name, zip_error_strerror(&error));
zip_error_fini(&error);
return-1;
}
ERRORS
The archive specified by path is opened unless:- Bq Er ZIP_ER_EXISTS
- The file specified by path exists and ZIP_EXCL is set.
- Bq Er 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.
- Bq Er ZIP_ER_INVAL
- The path argument is NULL
- Bq Er ZIP_ER_MEMORY
- Required memory could not be allocated.
- Bq Er ZIP_ER_NOENT
- The file specified by path does not exist and ZIP_CREATE is not set.
- Bq Er ZIP_ER_NOZIP
- The file specified by path is not a zip archive.
- Bq Er ZIP_ER_OPEN
- The file specified by path could not be opened.
- Bq Er ZIP_ER_READ
- A read error occurred; see errno for details.
- Bq Er ZIP_ER_SEEK
- The file specified by path does not allow seeks.
For newly created archives, Fn zip_open does not try to create the file; this is done when calling zip_close3 and any errors, like missing write permissions, will be reported then.
SEE ALSO
libzip(3), zip_close3, zip_error_strerror3, zip_fdopen3, zip_source5HISTORY
Fn zip_open and Fn zip_open_from_source were added in libzip 1.0.AUTHORS
An -nosplit An Dieter Baron Aq Mt dillo@nih.at and An Thomas Klausner Aq Mt wiz@gatalith.at