<!DOCTYPE html>
<html>
<!-- This is an automatically generated file.  Do not edit.
   zip_stat.mdoc -- get information about file
   Copyright (C) 2003-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_STAT(3)</title>
</head>
<body>
<table class="head">
  <tr>
    <td class="head-ltitle">ZIP_STAT(3)</td>
    <td class="head-vol">Library Functions Manual</td>
    <td class="head-rtitle">ZIP_STAT(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_stat</code>,
  <code class="Nm" title="Nm">zip_stat_index</code> &#x2014;
<div class="Nd" title="Nd">get information about file</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">int</var>
<br/>
<code class="Fn" title="Fn">zip_stat</code>(<var class="Fa" title="Fa" style="white-space: nowrap;">zip_t
  *archive</var>, <var class="Fa" title="Fa" style="white-space: nowrap;">const
  char *fname</var>,
  <var class="Fa" title="Fa" style="white-space: nowrap;">zip_flags_t
  flags</var>,
  <var class="Fa" title="Fa" style="white-space: nowrap;">zip_stat_t *sb</var>);
<div class="Pp"></div>
<var class="Ft" title="Ft">int</var>
<br/>
<code class="Fn" title="Fn">zip_stat_index</code>(<var class="Fa" title="Fa" style="white-space: nowrap;">zip_t
  *archive</var>,
  <var class="Fa" title="Fa" style="white-space: nowrap;">zip_uint64_t
  index</var>,
  <var class="Fa" title="Fa" style="white-space: nowrap;">zip_flags_t
  flags</var>,
  <var class="Fa" title="Fa" style="white-space: nowrap;">zip_stat_t *sb</var>);
<h1 class="Sh" title="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
The <code class="Fn" title="Fn">zip_stat</code>() function obtains information
  about the file named <var class="Ar" title="Ar">fname</var> in
  <var class="Ar" title="Ar">archive</var>. The
  <var class="Ar" title="Ar">flags</var> argument specifies how the name lookup
  should be done. Its values are described in
  <a class="Xr" title="Xr" href="zip_name_locate.html">zip_name_locate(3)</a>.
  Also, <code class="Dv" title="Dv">ZIP_FL_UNCHANGED</code> may be
  <i class="Em" title="Em">or</i><span class="No">'ed</span> to it to request
  information about the original file in the archive, ignoring any changes made.
<div class="Pp"></div>
The <code class="Fn" title="Fn">zip_stat_index</code>() function obtains
  information about the file at position <var class="Ar" title="Ar">index</var>.
<div class="Pp"></div>
The <var class="Ar" title="Ar">sb</var> argument is a pointer to a
  <var class="Ft" title="Ft">struct zip_stat</var> (shown below), into which
  information about the file is placed.
<div class="Pp"></div>
<div class="Bd">
<pre class="Li">
struct zip_stat { 
    zip_uint64_t valid;                 /* which fields have valid values */ 
    const char *name;                   /* name of the file */ 
    zip_uint64_t index;                 /* index within archive */ 
    zip_uint64_t size;                  /* size of file (uncompressed) */ 
    zip_uint64_t comp_size;             /* size of file (compressed) */ 
    time_t mtime;                       /* modification time */ 
    zip_uint32_t crc;                   /* crc of file data */ 
    zip_uint16_t comp_method;           /* compression method used */ 
    zip_uint16_t encryption_method;     /* encryption method used */ 
    zip_uint32_t flags;                 /* reserved for future use */ 
};
</pre>
</div>
The structure pointed to by <var class="Ar" title="Ar">sb</var> must be
  allocated before calling <code class="Fn" title="Fn">zip_stat</code>() or
  <code class="Fn" title="Fn">zip_stat_index</code>().
<div class="Pp"></div>
The <var class="Ar" title="Ar">valid</var> field of the structure specifies
  which other fields are valid. Check if the flag defined by the following
  defines are in <var class="Ar" title="Ar">valid</var> before accessing the
  fields:
<div class="Bd-indent">
<dl class="Bl-tag Bl-compact">
  <dt><a class="permalink" href="#ZIP_STAT_NAME"><code class="Dv" title="Dv" id="ZIP_STAT_NAME">ZIP_STAT_NAME</code></a></dt>
  <dd><var class="Ar" title="Ar">name</var></dd>
  <dt><a class="permalink" href="#ZIP_STAT_INDEX"><code class="Dv" title="Dv" id="ZIP_STAT_INDEX">ZIP_STAT_INDEX</code></a></dt>
  <dd><var class="Ar" title="Ar">index</var></dd>
  <dt><a class="permalink" href="#ZIP_STAT_SIZE"><code class="Dv" title="Dv" id="ZIP_STAT_SIZE">ZIP_STAT_SIZE</code></a></dt>
  <dd><var class="Ar" title="Ar">size</var></dd>
  <dt><a class="permalink" href="#ZIP_STAT_COMP_SIZE"><code class="Dv" title="Dv" id="ZIP_STAT_COMP_SIZE">ZIP_STAT_COMP_SIZE</code></a></dt>
  <dd><var class="Ar" title="Ar">comp_size</var></dd>
  <dt><a class="permalink" href="#ZIP_STAT_MTIME"><code class="Dv" title="Dv" id="ZIP_STAT_MTIME">ZIP_STAT_MTIME</code></a></dt>
  <dd><var class="Ar" title="Ar">mtime</var></dd>
  <dt><a class="permalink" href="#ZIP_STAT_CRC"><code class="Dv" title="Dv" id="ZIP_STAT_CRC">ZIP_STAT_CRC</code></a></dt>
  <dd><var class="Ar" title="Ar">crc</var></dd>
  <dt><a class="permalink" href="#ZIP_STAT_COMP_METHOD"><code class="Dv" title="Dv" id="ZIP_STAT_COMP_METHOD">ZIP_STAT_COMP_METHOD</code></a></dt>
  <dd><var class="Ar" title="Ar">comp_method</var></dd>
  <dt><a class="permalink" href="#ZIP_STAT_ENCRYPTION_METHOD"><code class="Dv" title="Dv" id="ZIP_STAT_ENCRYPTION_METHOD">ZIP_STAT_ENCRYPTION_METHOD</code></a></dt>
  <dd><var class="Ar" title="Ar">encryption_method</var></dd>
  <dt><a class="permalink" href="#ZIP_STAT_FLAGS"><code class="Dv" title="Dv" id="ZIP_STAT_FLAGS">ZIP_STAT_FLAGS</code></a></dt>
  <dd><var class="Ar" title="Ar">flags</var></dd>
</dl>
</div>
<h1 class="Sh" title="Sh" id="RETURN_VALUES"><a class="permalink" href="#RETURN_VALUES">RETURN
  VALUES</a></h1>
Upon successful completion 0 is returned. Otherwise, -1 is returned and the
  error information in <var class="Ar" title="Ar">archive</var> is set to
  indicate the error.
<h1 class="Sh" title="Sh" id="ERRORS"><a class="permalink" href="#ERRORS">ERRORS</a></h1>
The function <code class="Fn" title="Fn">zip_stat</code>() can fail for any of
  the errors specified for the routine
  <a class="Xr" title="Xr" href="zip_name_locate.html">zip_name_locate(3)</a>.
<div class="Pp"></div>
The function <code class="Fn" title="Fn">zip_stat_index</code>() fails and sets
  the error information to <code class="Er" title="Er">ZIP_ER_INVAL</code> if
  <var class="Ar" title="Ar">index</var> is invalid. If
  <code class="Dv" title="Dv">ZIP_FL_UNCHANGED</code> is not set and no
  information can be obtained from the source callback, the error information is
  set to <code class="Er" title="Er">ZIP_ER_CHANGED</code>.
<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_get_num_entries.html">zip_get_num_entries(3)</a>,
  <a class="Xr" title="Xr" href="zip_name_locate.html">zip_name_locate(3)</a>,
  <a class="Xr" title="Xr" href="zip_stat_init.html">zip_stat_init(3)</a>
<h1 class="Sh" title="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1>
<code class="Fn" title="Fn">zip_stat</code>() was added in libzip 0.6. In libzip
  0.11 the type of <var class="Ar" title="Ar">flags</var> was changed from
  <var class="Vt" title="Vt">int</var> to
  <var class="Vt" title="Vt">zip_flags_t</var>.
<div class="Pp"></div>
<code class="Fn" title="Fn">zip_stat_index</code>() was added in libzip 0.6. In
  libzip 0.10 the type of <var class="Ar" title="Ar">index</var> was changed
  from <var class="Vt" title="Vt">int</var> to
  <var class="Vt" title="Vt">zip_uint64_t</var>. In libzip 0.11 the type of
  <var class="Ar" title="Ar">flags</var> was changed from
  <var class="Vt" title="Vt">int</var> to
  <var class="Vt" title="Vt">zip_flags_t</var>.
<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>
