<!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"/>
  <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="permalink" href="#NAME">NAME</a></h1>
<code class="Nm" title="Nm">zip_error_get</code>,
  <code class="Nm" title="Nm">zip_file_error_get</code> &#x2014;
<div class="Nd" title="Nd">get error codes for archive or file (obsolete
  interface)</div>
<h1 class="Sh" title="Sh" id="LIBRARY"><a class="permalink" href="#LIBRARY">LIBRARY</a></h1>
libzip (-lzip)
<h1 class="Sh" title="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
<code class="In" title="In">#include
  &lt;<a class="In" title="In">zip.h</a>&gt;</code>
<div class="Pp"></div>
<var class="Ft" title="Ft">void</var>
<br/>
<code class="Fn" title="Fn">zip_error_get</code>(<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/>
<code class="Fn" title="Fn">zip_file_error_get</code>(<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="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
The functions <code class="Fn" title="Fn">zip_error_get</code>() and
  <code class="Fn" title="Fn">zip_file_error_get</code>() 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 <code class="Fn" title="Fn">zip_error_get</code>(), replace
<div class="Pp"></div>
<div class="Bd Bd-indent">
<pre class="Li">
int ze, se; 
zip_error_get(za, &amp;ze, &amp;se);
</pre>
</div>
with
<div class="Pp"></div>
<div class="Bd Bd-indent">
<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 <code class="Fn" title="Fn">zip_file_error_get</code>(), replace
<div class="Pp"></div>
<div class="Bd Bd-indent">
<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 Bd-indent">
<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="permalink" 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="permalink" href="#HISTORY">HISTORY</a></h1>
<code class="Fn" title="Fn">zip_error_get</code>() was added in libzip 0.6. It
  was deprecated in libzip 1.0, use
  <code class="Fn" title="Fn">zip_get_error</code>(),
  <code class="Fn" title="Fn">zip_error_code_zip</code>(), /
  <code class="Fn" title="Fn">zip_error_code_system</code>() instead.
<div class="Pp"></div>
<code class="Fn" title="Fn">zip_file_error_get</code>() was added in libzip 0.6.
  It was deprecated in libzip 1.0, use
  <code class="Fn" title="Fn">zip_file_get_error</code>(),
  <code class="Fn" title="Fn">zip_error_code_zip</code>(), /
  <code class="Fn" title="Fn">zip_error_code_system</code>() instead.
<h1 class="Sh" title="Sh" id="AUTHORS"><a class="permalink" 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.27</td>
  </tr>
</table>
</body>
</html>
