<!DOCTYPE html>
<html>
<!-- This is an automatically generated file.  Do not edit.
   zip_source_zip.mdoc -- create data source from zip file
   Copyright (C) 2004-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_SOURCE_ZIP(3)</title>
</head>
<body>
<table class="head">
  <tr>
    <td class="head-ltitle">ZIP_SOURCE_ZIP(3)</td>
    <td class="head-vol">Library Functions Manual</td>
    <td class="head-rtitle">ZIP_SOURCE_ZIP(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_source_zip</code>,
  <code class="Nm">zip_source_zip_create</code> &#x2014;
<div class="Nd">create data source from zip file</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_source_t *</var>
  <br/>
  <code class="Fn">zip_source_zip</code>(<var class="Fa" style="white-space: nowrap;">zip_t
    *archive</var>, <var class="Fa" style="white-space: nowrap;">zip_t
    *srcarchive</var>, <var class="Fa" style="white-space: nowrap;">zip_uint64_t
    srcidx</var>, <var class="Fa" style="white-space: nowrap;">zip_flags_t
    flags</var>, <var class="Fa" style="white-space: nowrap;">zip_uint64_t
    start</var>, <var class="Fa" style="white-space: nowrap;">zip_int64_t
    len</var>);</p>
<p class="Pp"><var class="Ft">zip_source_t *</var>
  <br/>
  <code class="Fn">zip_source_zip_create</code>(<var class="Fa" style="white-space: nowrap;">zip_t
    *srcarchive</var>, <var class="Fa" style="white-space: nowrap;">zip_uint64_t
    srcidx</var>, <var class="Fa" style="white-space: nowrap;">zip_flags_t
    flags</var>, <var class="Fa" style="white-space: nowrap;">zip_uint64_t
    start</var>, <var class="Fa" style="white-space: nowrap;">zip_int64_t
    len</var>, <var class="Fa" style="white-space: nowrap;">zip_error_t
    *error</var>);</p>
</section>
<section class="Sh">
<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
The functions <code class="Fn">zip_source_zip</code>() and
  <code class="Fn">zip_source_zip_create</code>() create a zip source from a
  file in a zip archive. The <var class="Ar">srcarchive</var> argument is the
  (open) zip archive containing the source zip file at index
  <var class="Ar">srcidx</var>. <var class="Ar">len</var> bytes from offset
  <var class="Ar">start</var> will be used in the zip_source. If
  <var class="Ar">len</var> is 0 or -1, the rest of the file, starting from
  <var class="Ar">start</var>, is used. If <var class="Ar">start</var> is zero
  and <var class="Ar">len</var> is -1, the whole file will be copied without
  decompressing it.
<p class="Pp">Supported flags are:</p>
<dl class="Bl-tag">
  <dt><a class="permalink" href="#ZIP_FL_UNCHANGED"><code class="Dv" id="ZIP_FL_UNCHANGED">ZIP_FL_UNCHANGED</code></a></dt>
  <dd>Try to get the original data without any changes that may have been made
      to <var class="Ar">srcarchive</var> after opening it.</dd>
  <dt><a class="permalink" href="#ZIP_FL_RECOMPRESS"><code class="Dv" id="ZIP_FL_RECOMPRESS">ZIP_FL_RECOMPRESS</code></a></dt>
  <dd>When adding the data from <var class="Ar">srcarchive</var>, re-compress it
      using the current settings instead of copying the compressed data.</dd>
</dl>
</section>
<section class="Sh">
<h1 class="Sh" id="RETURN_VALUES"><a class="permalink" href="#RETURN_VALUES">RETURN
  VALUES</a></h1>
Upon successful completion, the created source is returned. Otherwise,
  <code class="Dv">NULL</code> is returned and the error code in
  <var class="Ar">archive</var> or <var class="Ar">error</var> is set to
  indicate the error.
</section>
<section class="Sh">
<h1 class="Sh" id="ERRORS"><a class="permalink" href="#ERRORS">ERRORS</a></h1>
<code class="Fn">zip_source_zip</code>() and
  <code class="Fn">zip_source_zip_create</code>() fail if:
<dl class="Bl-tag">
  <dt>[<a class="permalink" href="#ZIP_ER_CHANGED"><code class="Er" id="ZIP_ER_CHANGED">ZIP_ER_CHANGED</code></a>]</dt>
  <dd>Unchanged data was requested, but it is not available.</dd>
  <dt>[<a class="permalink" href="#ZIP_ER_INVAL"><code class="Er" id="ZIP_ER_INVAL">ZIP_ER_INVAL</code></a>]</dt>
  <dd><var class="Ar">srcarchive</var>, <var class="Ar">srcidx</var>,
      <var class="Ar">start</var>, or <var class="Ar">len</var> are
    invalid.</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>
</dl>
Additionally, it can return all error codes from
  <code class="Fn">zip_stat_index</code>() and
  <code class="Fn">zip_fopen_index</code>().
</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_file_add.html">zip_file_add(3)</a>,
  <a class="Xr" href="zip_file_replace.html">zip_file_replace(3)</a>,
  <a class="Xr" href="zip_source.html">zip_source(3)</a>
</section>
<section class="Sh">
<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1>
<code class="Fn">zip_source_zip</code>() was added in libzip 1.0.
  <code class="Fn">zip_source_zip_create</code>() was added in libzip 1.8.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">April 4, 2021</td>
    <td class="foot-os">NiH</td>
  </tr>
</table>
</body>
</html>
