<!DOCTYPE html>
<html>
<!-- This is an automatically generated file.  Do not edit.
   zip_fdopen.mdoc -- open zip archive using existing file descriptor
   Copyright (C) 2009-2021 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.
   -->
<head>
  <meta charset="utf-8"/>
  <link rel="stylesheet" href="../nih-man.css" type="text/css" media="all"/>
  <title>ZIP_FDOPEN(3)</title>
</head>
<body>
<table class="head">
  <tr>
    <td class="head-ltitle">ZIP_FDOPEN(3)</td>
    <td class="head-vol">Library Functions Manual</td>
    <td class="head-rtitle">ZIP_FDOPEN(3)</td>
  </tr>
</table>
<div class="manual-text">
<section class="Sh">
<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
<code class="Nm">zip_fdopen</code> &#x2014;
<div class="Nd">open zip archive using open file descriptor</div>
</section>
<section class="Sh">
<h1 class="Sh" id="LIBRARY"><a class="permalink" href="#LIBRARY">LIBRARY</a></h1>
libzip (-lzip)
</section>
<section class="Sh">
<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
<code class="In">#include &lt;<a class="In">zip.h</a>&gt;</code>
<p class="Pp"><var class="Ft">zip_t *</var>
  <br/>
  <code class="Fn">zip_fdopen</code>(<var class="Fa" style="white-space: nowrap;">int
    fd</var>, <var class="Fa" style="white-space: nowrap;">int flags</var>,
    <var class="Fa" style="white-space: nowrap;">int *errorp</var>);</p>
</section>
<section class="Sh">
<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
The zip archive specified by the open file descriptor <var class="Ar">fd</var>
  is opened and a pointer to a <var class="Ft">struct zip</var>, used to
  manipulate the archive, is returned. In contrast to
  <a class="Xr" href="zip_open.html">zip_open(3)</a>, using
  <code class="Nm">zip_fdopen</code> the archive can only be opened in read-only
  mode. The <var class="Ar">fd</var> argument may not be used any longer after
  calling <code class="Nm">zip_fdopen</code>. The <var class="Fa">flags</var>
  are specified by <i class="Em">or</i><span class="No">'ing</span> the
  following values, or 0 for none of them.
<div class="Bd-indent">
<dl class="Bl-tag">
  <dt><a class="permalink" href="#ZIP_CHECKCONS"><code class="Dv" id="ZIP_CHECKCONS">ZIP_CHECKCONS</code></a></dt>
  <dd>Perform additional stricter consistency checks on the archive, and error
      if they fail.</dd>
</dl>
</div>
<p class="Pp">If an error occurs and <var class="Ar">errorp</var> is
    <span class="No">non-</span><code class="Dv">NULL</code>, it will be set to
    the corresponding error code.</p>
</section>
<section class="Sh">
<h1 class="Sh" id="RETURN_VALUES"><a class="permalink" href="#RETURN_VALUES">RETURN
  VALUES</a></h1>
Upon successful completion <code class="Fn">zip_fdopen</code>() returns a
  <var class="Ft">struct zip</var> pointer, and <var class="Ar">fd</var> should
  not be used any longer, nor passed to
  <a class="Xr" href="http://pubs.opengroup.org/onlinepubs/9699919799/functions/close.html">close(2)</a>. Otherwise,
  <code class="Dv">NULL</code> is returned and <var class="Ar">*errorp</var> is
  set to indicate the error. In the error case, <var class="Ar">fd</var> remains
  unchanged.
</section>
<section class="Sh">
<h1 class="Sh" id="ERRORS"><a class="permalink" href="#ERRORS">ERRORS</a></h1>
The file specified by <var class="Ar">fd</var> is prepared for use by
  <a class="Xr" href="libzip.html">libzip(3)</a> unless:
<dl class="Bl-tag">
  <dt>[<a class="permalink" href="#ZIP_ER_INCONS"><code class="Er" id="ZIP_ER_INCONS">ZIP_ER_INCONS</code></a>]</dt>
  <dd>Inconsistencies were found in the file specified by
      <var class="Ar">path</var>. This error is often caused by specifying
      <code class="Dv">ZIP_CHECKCONS</code> but can also happen without it.</dd>
  <dt>[<a class="permalink" href="#ZIP_ER_INVAL"><code class="Er" id="ZIP_ER_INVAL">ZIP_ER_INVAL</code></a>]</dt>
  <dd>The <var class="Ar">flags</var> argument is invalid. Not all
      <a class="Xr" href="zip_open.html">zip_open(3)</a> flags are allowed for
      <code class="Nm">zip_fdopen</code>, see
      <a class="Sx" href="#DESCRIPTION">DESCRIPTION</a>.</dd>
  <dt>[<a class="permalink" href="#ZIP_ER_MEMORY"><code class="Er" id="ZIP_ER_MEMORY">ZIP_ER_MEMORY</code></a>]</dt>
  <dd>Required memory could not be allocated.</dd>
  <dt>[<a class="permalink" href="#ZIP_ER_NOZIP"><code class="Er" id="ZIP_ER_NOZIP">ZIP_ER_NOZIP</code></a>]</dt>
  <dd>The file specified by <var class="Ar">fd</var> is not a zip archive.</dd>
  <dt>[<a class="permalink" href="#ZIP_ER_OPEN"><code class="Er" id="ZIP_ER_OPEN">ZIP_ER_OPEN</code></a>]</dt>
  <dd>The file specified by <var class="Ar">fd</var> could not be prepared for
      use by <a class="Xr" href="libzip.html">libzip(3)</a>.</dd>
  <dt>[<a class="permalink" href="#ZIP_ER_READ"><code class="Er" id="ZIP_ER_READ">ZIP_ER_READ</code></a>]</dt>
  <dd>A read error occurred; see <var class="Va">errno</var> for details.</dd>
  <dt>[<a class="permalink" href="#ZIP_ER_SEEK"><code class="Er" id="ZIP_ER_SEEK">ZIP_ER_SEEK</code></a>]</dt>
  <dd>The file specified by <var class="Ar">fd</var> does not allow seeks.</dd>
</dl>
</section>
<section class="Sh">
<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
  ALSO</a></h1>
<a class="Xr" href="libzip.html">libzip(3)</a>,
  <a class="Xr" href="zip_close.html">zip_close(3)</a>,
  <a class="Xr" href="zip_error_strerror.html">zip_error_strerror(3)</a>,
  <a class="Xr" href="zip_open.html">zip_open(3)</a>
</section>
<section class="Sh">
<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1>
<code class="Fn">zip_fdopen</code>() was added in libzip 1.0.
</section>
<section class="Sh">
<h1 class="Sh" id="AUTHORS"><a class="permalink" href="#AUTHORS">AUTHORS</a></h1>
<span class="An">Dieter Baron</span>
  &lt;<a class="Mt" href="mailto:dillo@nih.at">dillo@nih.at</a>&gt; and
  <span class="An">Thomas Klausner</span>
  &lt;<a class="Mt" href="mailto:tk@giga.or.at">tk@giga.or.at</a>&gt;
</section>
</div>
<table class="foot">
  <tr>
    <td class="foot-date">December 18, 2017</td>
    <td class="foot-os">NiH</td>
  </tr>
</table>
</body>
</html>
