<!DOCTYPE html>
<html>
<!-- This is an automatically generated file.  Do not edit.
   zip_source_buffer_fragment.mdoc -- create zip data source from multiple buffers
   Copyright (C) 2004-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.
   -->
<head>
  <meta charset="utf-8"/>
  <style>
    table.head, table.foot { width: 100%; }
    td.head-rtitle, td.foot-os { text-align: right; }
    td.head-vol { text-align: center; }
    div.Pp { margin: 1ex 0ex; }
  </style>
  <link rel="stylesheet" href="../nih-man.css" type="text/css" media="all"/>
  <title>ZIP_SOURCE_BUFFER_FRAGMENT(3)</title>
</head>
<body>
<table class="head">
  <tr>
    <td class="head-ltitle">ZIP_SOURCE_BUFFER_FRAGMENT(3)</td>
    <td class="head-vol">Library Functions Manual</td>
    <td class="head-rtitle">ZIP_SOURCE_BUFFER_FRAGMENT(3)</td>
  </tr>
</table>
<div class="manual-text">
<h1 class="Sh" title="Sh" id="NAME"><a class="selflink" href="#NAME">NAME</a></h1>
<b class="Nm" title="Nm">zip_source_buffer_fragment</b>,
  <b class="Nm" title="Nm">zip_source_buffer_fragment_create</b> &#x2014;
  <span class="Nd" title="Nd">create zip data source from multiple buffer</span>
<h1 class="Sh" title="Sh" id="LIBRARY"><a class="selflink" href="#LIBRARY">LIBRARY</a></h1>
libzip (-lzip)
<h1 class="Sh" title="Sh" id="SYNOPSIS"><a class="selflink" href="#SYNOPSIS">SYNOPSIS</a></h1>
<b class="In" title="In">#include &lt;<a class="In" title="In">zip.h</a>&gt;</b>
<div class="Pp"></div>
<var class="Ft" title="Ft">zip_source_t *</var>
<br/>
<b class="Fn" title="Fn">zip_source_buffer_fragment</b>(<var class="Fa" title="Fa" style="white-space: nowrap;">zip_t
  *archive</var>,
  <var class="Fa" title="Fa" style="white-space: nowrap;">zip_buffer_fragment_t
  *fragments</var>,
  <var class="Fa" title="Fa" style="white-space: nowrap;">zip_uint64_t
  nfragments</var>, <var class="Fa" title="Fa" style="white-space: nowrap;">int
  freep</var>);
<div class="Pp"></div>
<var class="Ft" title="Ft">zip_source_t *</var>
<br/>
<b class="Fn" title="Fn">zip_source_buffer_fragment_create</b>(<var class="Fa" title="Fa" style="white-space: nowrap;">zip_buffer_fragment_t
  *fragments</var>,
  <var class="Fa" title="Fa" style="white-space: nowrap;">zip_uint64_t
  nfragments</var>, <var class="Fa" title="Fa" style="white-space: nowrap;">int
  freep</var>,
  <var class="Fa" title="Fa" style="white-space: nowrap;">zip_error_t
  *error</var>);
<h1 class="Sh" title="Sh" id="DESCRIPTION"><a class="selflink" href="#DESCRIPTION">DESCRIPTION</a></h1>
The functions <b class="Fn" title="Fn">zip_source_buffer_fragment</b>() and
  <b class="Fn" title="Fn">zip_source_buffer_fragment_create</b>() create a zip
  source from the data in <var class="Ar" title="Ar">fragments</var>.
  <var class="Ar" title="Ar">nfragments</var> specifies the number of fragments.
  If <var class="Ar" title="Ar">freep</var> is non-zero, the data will be freed
  when it is no longer needed.
<div class="Pp"></div>
<div class="Bd" style="margin-left: 0.00ex;">
<pre class="Li">
struct zip_stat { 
    zip_uint8_t *data;    /* pointer to the actual data */ 
    zip_uint64_t length;  /* length of this fragment */ 
};
</pre>
</div>
<div class="Pp"></div>
The data <var class="Ar" title="Ar">fragments</var> point to must remain valid
  for the lifetime of the created source.
  <var class="Ar" title="Ar">fragments</var> itself can be discarded once the
  source is created.
<div class="Pp"></div>
The source can be used to open a zip archive from.
<h1 class="Sh" title="Sh" id="RETURN_VALUES"><a class="selflink" href="#RETURN_VALUES">RETURN
  VALUES</a></h1>
Upon successful completion, the created source is returned. Otherwise,
  <code class="Dv" title="Dv">NULL</code> is returned and the error code in
  <var class="Ar" title="Ar">archive</var> or
  <var class="Ar" title="Ar">error</var> is set to indicate the error.
<h1 class="Sh" title="Sh" id="ERRORS"><a class="selflink" href="#ERRORS">ERRORS</a></h1>
<b class="Fn" title="Fn">zip_source_buffer</b>() and
  <b class="Fn" title="Fn">zip_source_buffer_create</b>() fail if:
<dl class="Bl-tag" style="margin-left: 23.40ex;">
  <dt class="It-tag" style="margin-left: -23.40ex;">&#x00A0;</dt>
  <dd class="It-tag">&#x00A0;</dd>
  <dt class="It-tag" style="margin-left: -23.40ex;">[<a class="selflink" href="#ZIP_ER_INVAL"><code class="Er" title="Er" id="ZIP_ER_INVAL">ZIP_ER_INVAL</code></a>]</dt>
  <dd class="It-tag"><var class="Ar" title="Ar">nfragments</var> is greater than
      zero and <var class="Ar" title="Ar">fragments</var> is
      <code class="Dv" title="Dv">NULL</code>.</dd>
  <dt class="It-tag" style="margin-left: -23.40ex;">&#x00A0;</dt>
  <dd class="It-tag">&#x00A0;</dd>
  <dt class="It-tag" style="margin-left: -23.40ex;">[<a class="selflink" href="#ZIP_ER_MEMORY"><code class="Er" title="Er" id="ZIP_ER_MEMORY">ZIP_ER_MEMORY</code></a>]</dt>
  <dd class="It-tag">Required memory could not be allocated.</dd>
</dl>
<h1 class="Sh" title="Sh" id="SEE_ALSO"><a class="selflink" href="#SEE_ALSO">SEE
  ALSO</a></h1>
<a class="Xr" title="Xr" href="libzip.html">libzip(3)</a>,
  <a class="Xr" title="Xr" href="zip_add.html">zip_add(3)</a>,
  <a class="Xr" title="Xr" href="zip_open_from_source.html">zip_open_from_source(3)</a>,
  <a class="Xr" title="Xr" href="zip_replace.html">zip_replace(3)</a>,
  <a class="Xr" title="Xr" href="zip_source.html">zip_source(3)</a>
<h1 class="Sh" title="Sh" id="HISTORY"><a class="selflink" href="#HISTORY">HISTORY</a></h1>
<b class="Fn" title="Fn">zip_source_buffer_fragment</b>() and
  <b class="Fn" title="Fn">zip_source_buffer_fragment_create</b>() were added in
  libzip 1.4.0.
<h1 class="Sh" title="Sh" id="AUTHORS"><a class="selflink" href="#AUTHORS">AUTHORS</a></h1>
<span class="An" title="An">Dieter Baron</span>
  &lt;<a class="Mt" title="Mt" href="mailto:dillo@nih.at">dillo@nih.at</a>&gt;
  and <span class="An" title="An">Thomas Klausner</span>
  &lt;<a class="Mt" title="Mt" href="mailto:tk@giga.or.at">tk@giga.or.at</a>&gt;</div>
<table class="foot">
  <tr>
    <td class="foot-date">December 18, 2017</td>
    <td class="foot-os">NetBSD 8.99.14</td>
  </tr>
</table>
</body>
</html>
