<!DOCTYPE html>
<html>
<!-- This is an automatically generated file.  Do not edit.
   zip_error_get.mdoc -- get error codes for archive or file
   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_ERROR_GET(3)</title>
</head>
<body>
<table class="head">
  <tr>
    <td class="head-ltitle">ZIP_ERROR_GET(3)</td>
    <td class="head-vol">Library Functions Manual</td>
    <td class="head-rtitle">ZIP_ERROR_GET(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_error_get</b>,
  <b class="Nm" title="Nm">zip_file_error_get</b> &#x2014;
  <span class="Nd" title="Nd">get error codes for archive or file (obsolete
  interface)</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">void</var>
<br/>
<b class="Fn" title="Fn">zip_error_get</b>(<var class="Fa" title="Fa" style="white-space: nowrap;">zip_t
  *archive</var>, <var class="Fa" title="Fa" style="white-space: nowrap;">int
  *zep</var>, <var class="Fa" title="Fa" style="white-space: nowrap;">int
  *sep</var>);
<div class="Pp"></div>
<var class="Ft" title="Ft">void</var>
<br/>
<b class="Fn" title="Fn">zip_file_error_get</b>(<var class="Fa" title="Fa" style="white-space: nowrap;">zip_file_t
  *file</var>, <var class="Fa" title="Fa" style="white-space: nowrap;">int
  *zep</var>, <var class="Fa" title="Fa" style="white-space: nowrap;">int
  *sep</var>);
<h1 class="Sh" title="Sh" id="DESCRIPTION"><a class="selflink" href="#DESCRIPTION">DESCRIPTION</a></h1>
The functions <b class="Fn" title="Fn">zip_error_get</b>() and
  <b class="Fn" title="Fn">zip_file_error_get</b>() are deprecated. Use
  <a class="Xr" title="Xr" href="zip_error_code_system.html">zip_error_code_system(3)</a>,
  <a class="Xr" title="Xr" href="zip_error_code_zip.html">zip_error_code_zip(3)</a>,
  <a class="Xr" title="Xr" href="zip_file_get_error.html">zip_file_get_error(3)</a>,
  and <a class="Xr" title="Xr" href="zip_get_error.html">zip_get_error(3)</a>
  instead.
<div class="Pp"></div>
For <b class="Fn" title="Fn">zip_error_get</b>(), replace
<div class="Pp"></div>
<div class="Bd" style="margin-left: 5.00ex;">
<pre class="Li">
int ze, se; 
zip_error_get(za, &amp;ze, &amp;se);
</pre>
</div>
with
<div class="Pp"></div>
<div class="Bd" style="margin-left: 5.00ex;">
<pre class="Li">
int ze, se; 
zip_error_t *error = zip_get_error(za); 
ze = zip_error_code_zip(error); 
se = zip_error_code_system(error);
</pre>
</div>
For <b class="Fn" title="Fn">zip_file_error_get</b>(), replace
<div class="Pp"></div>
<div class="Bd" style="margin-left: 5.00ex;">
<pre class="Li">
int ze, se; 
zip_file_error_get(zf, &amp;ze, &amp;se);
</pre>
</div>
with
<div class="Pp"></div>
<div class="Bd" style="margin-left: 5.00ex;">
<pre class="Li">
int ze, se; 
zip_error_t *error = zip_file_get_error(zf); 
ze = zip_error_code_zip(error); 
se = zip_error_code_system(error);
</pre>
</div>
<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_error_code_system.html">zip_error_code_system(3)</a>,
  <a class="Xr" title="Xr" href="zip_error_code_zip.html">zip_error_code_zip(3)</a>,
  <a class="Xr" title="Xr" href="zip_file_get_error.html">zip_file_get_error(3)</a>,
  <a class="Xr" title="Xr" href="zip_get_error.html">zip_get_error(3)</a>
<h1 class="Sh" title="Sh" id="HISTORY"><a class="selflink" href="#HISTORY">HISTORY</a></h1>
<b class="Fn" title="Fn">zip_error_get</b>() was added in libzip 0.6. It was
  deprecated in libzip 1.0, use <b class="Fn" title="Fn">zip_get_error</b>(),
  <b class="Fn" title="Fn">zip_error_code_zip</b>(), /
  <b class="Fn" title="Fn">zip_error_code_system</b>() instead.
<div class="Pp"></div>
<b class="Fn" title="Fn">zip_file_error_get</b>() was added in libzip 0.6. It
  was deprecated in libzip 1.0, use
  <b class="Fn" title="Fn">zip_file_get_error</b>(),
  <b class="Fn" title="Fn">zip_error_code_zip</b>(), /
  <b class="Fn" title="Fn">zip_error_code_system</b>() instead.
<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>
