170 lines
4.3 KiB
Text
170 lines
4.3 KiB
Text
.\" zip_open.mdoc -- open zip archive
|
|
.\" Copyright (C) 2003-2017 Dieter Baron and Thomas Klausner
|
|
.\"
|
|
.\" This file is part of libzip, a library to manipulate ZIP archives.
|
|
.\" The authors can be contacted at <libzip@nih.at>
|
|
.\"
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
.\" modification, are permitted provided that the following conditions
|
|
.\" are met:
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer.
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer in
|
|
.\" the documentation and/or other materials provided with the
|
|
.\" distribution.
|
|
.\" 3. The names of the authors may not be used to endorse or promote
|
|
.\" products derived from this software without specific prior
|
|
.\" written permission.
|
|
.\"
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
|
|
.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
|
|
.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
|
.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
|
|
.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
|
.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
|
.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
.\"
|
|
.Dd December 18, 2017
|
|
.Dt ZIP_OPEN 3
|
|
.Os
|
|
.Sh NAME
|
|
.Nm zip_open ,
|
|
.Nm zip_open_from_source
|
|
.Nd open zip archive
|
|
.Sh LIBRARY
|
|
libzip (-lzip)
|
|
.Sh 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 *ze"
|
|
.Sh DESCRIPTION
|
|
The
|
|
.Fn zip_open
|
|
function opens the zip archive specified by
|
|
.Ar path
|
|
and returns a pointer to a
|
|
.Ft struct zip ,
|
|
used to manipulate the archive.
|
|
The
|
|
.Fa flags
|
|
are specified by
|
|
.Em or Ns No 'ing
|
|
the following values, or 0 for none of them.
|
|
.Bl -tag -offset indent -width ZIP_CHECKCONS
|
|
.It Dv ZIP_CHECKCONS
|
|
Perform additional stricter consistency checks on the archive, and
|
|
error if they fail.
|
|
.It Dv ZIP_CREATE
|
|
Create the archive if it does not exist.
|
|
.It Dv ZIP_EXCL
|
|
Error if archive already exists.
|
|
.It Dv ZIP_TRUNCATE
|
|
If archive exists, ignore its current contents.
|
|
In other words, handle it the same way as an empty archive.
|
|
.It Dv ZIP_RDONLY
|
|
Open archive in read-only mode.
|
|
.El
|
|
.Pp
|
|
If an error occurs and
|
|
.Ar errorp
|
|
is
|
|
.Pf non- Dv NULL ,
|
|
it will be set to the corresponding error code.
|
|
.Pp
|
|
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.
|
|
.Sh RETURN VALUES
|
|
Upon successful completion
|
|
.Fn zip_open
|
|
and
|
|
.Fn zip_open_from_source
|
|
return a
|
|
.Ft struct zip
|
|
pointer.
|
|
Otherwise,
|
|
.Dv NULL
|
|
is returned and
|
|
.Fn zip_open
|
|
sets
|
|
.Ar *errorp
|
|
to indicate the error, while
|
|
.Fn zip_open_from source
|
|
sets
|
|
.Ar ze
|
|
to indicate the error.
|
|
.Sh ERRORS
|
|
The archive specified by
|
|
.Ar path
|
|
is opened unless:
|
|
.Bl -tag -width Er
|
|
.It Bq Er ZIP_ER_EXISTS
|
|
The file specified by
|
|
.Ar path
|
|
exists and
|
|
.Dv ZIP_EXCL
|
|
is set.
|
|
.It Bq Er ZIP_ER_INCONS
|
|
Inconsistencies were found in the file specified by
|
|
.Ar path .
|
|
This error is often caused by specifying
|
|
.Dv ZIP_CHECKCONS
|
|
but can also happen without it.
|
|
.It Bq Er ZIP_ER_INVAL
|
|
The
|
|
.Ar path
|
|
argument is
|
|
.Dv NULL .
|
|
.It Bq Er ZIP_ER_MEMORY
|
|
Required memory could not be allocated.
|
|
.It Bq Er ZIP_ER_NOENT
|
|
The file specified by
|
|
.Ar path
|
|
does not exist and
|
|
.Dv ZIP_CREATE
|
|
is not set.
|
|
.It Bq Er ZIP_ER_NOZIP
|
|
The file specified by
|
|
.Ar path
|
|
is not a zip archive.
|
|
.It Bq Er ZIP_ER_OPEN
|
|
The file specified by
|
|
.Ar path
|
|
could not be opened.
|
|
.It Bq Er ZIP_ER_READ
|
|
A read error occurred; see
|
|
.Va errno
|
|
for details.
|
|
.It Bq Er ZIP_ER_SEEK
|
|
The file specified by
|
|
.Ar path
|
|
does not allow seeks.
|
|
.El
|
|
.Sh SEE ALSO
|
|
.Xr libzip 3 ,
|
|
.Xr zip_close 3 ,
|
|
.Xr zip_error_strerror 3 ,
|
|
.Xr zip_fdopen 3
|
|
.Sh HISTORY
|
|
.Fn zip_open
|
|
and
|
|
.Fn zip_open_from_source
|
|
were added in libzip 1.0.
|
|
.Sh AUTHORS
|
|
.An -nosplit
|
|
.An Dieter Baron Aq Mt dillo@nih.at
|
|
and
|
|
.An Thomas Klausner Aq Mt tk@giga.or.at
|