|  | .\" zip_fdopen.mdoc -- open zip archive using existing file descriptor | 
|  | .\" Copyright (C) 2009-2012 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 February 13, 2012 | 
|  | .Dt ZIP_FDOPEN 3 | 
|  | .Os | 
|  | .Sh NAME | 
|  | .Nm zip_fdopen | 
|  | .Nd open zip archive using open file descriptor | 
|  | .Sh LIBRARY | 
|  | libzip (-lzip) | 
|  | .Sh SYNOPSIS | 
|  | .In zip.h | 
|  | .Ft struct zip * | 
|  | .Fn zip_fdopen "int fd" "int flags" "int *errorp" | 
|  | .Sh DESCRIPTION | 
|  | The zip archive specified by the open file descriptor | 
|  | .Ar fd | 
|  | is opened and a pointer to a | 
|  | .Ft struct zip , | 
|  | used to manipulate the archive, is returned. | 
|  | In contrast to | 
|  | .Xr zip_open 3 , | 
|  | using | 
|  | .Nm zip_fdopen | 
|  | the archive can only be opened in read-only mode. | 
|  | The | 
|  | .Ar fd | 
|  | argument may not be used any longer after calling | 
|  | .Nm zip_fdopen . | 
|  | 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. | 
|  | .El | 
|  | .Pp | 
|  | If an error occurs and | 
|  | .Ar errorp | 
|  | is | 
|  | .No non- Ns Dv NULL , | 
|  | it will be set to the corresponding error code. | 
|  | .Sh RETURN VALUES | 
|  | Upon successful completion | 
|  | .Fn zip_fdopen | 
|  | returns a | 
|  | .Ft struct zip | 
|  | pointer, and | 
|  | .Ar fd | 
|  | should not be used any longer, nor passed to | 
|  | .Xr close 2 . | 
|  | Otherwise, | 
|  | .Dv NULL | 
|  | is returned and | 
|  | .Ar *errorp | 
|  | is set to indicate the error. | 
|  | In the error case, | 
|  | .Ar fd | 
|  | remains unchanged. | 
|  | .Sh ERRORS | 
|  | The file specified by | 
|  | .Ar fd | 
|  | is prepared for use by | 
|  | .Xr libzip 3 | 
|  | unless: | 
|  | .Bl -tag -width Er | 
|  | .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 flags | 
|  | argument is invalid. | 
|  | Not all | 
|  | .Xr zip_open 3 | 
|  | flags are allowed for | 
|  | .Nm zip_fdopen , | 
|  | see | 
|  | .Sx DESCRIPTION . | 
|  | .It Bq Er ZIP_ER_MEMORY | 
|  | Required memory could not be allocated. | 
|  | .It Bq Er ZIP_ER_NOZIP | 
|  | The file specified by | 
|  | .Ar fd | 
|  | is not a zip archive. | 
|  | .It Bq Er ZIP_ER_OPEN | 
|  | The file specified by | 
|  | .Ar fd | 
|  | could not be prepared for use by | 
|  | .Xr libzip 3 . | 
|  | .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 fd | 
|  | does not allow seeks. | 
|  | .El | 
|  | .Sh SEE ALSO | 
|  | .Xr libzip 3 , | 
|  | .Xr zip_close 3 , | 
|  | .Xr zip_error_to_str 3 , | 
|  | .Xr zip_open 3 | 
|  | .Sh AUTHORS | 
|  | .An -nosplit | 
|  | .An Dieter Baron Aq dillo@giga.or.at | 
|  | and | 
|  | .An Thomas Klausner Aq tk@giga.or.at |