Man page - zip_open(3)

Packages contains this manual

Manual


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.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 );

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 < dillo@nih.at > and Thomas Klausner < wiz@gatalith.at > Debian October 9, 2022 ZIP_OPEN (3)