<!DOCTYPE html>
<html>
<!-- This is an automatically generated file.  Do not edit.
   zip_file_get_comment.mdoc -- get comment for file in zip
   Copyright (C) 2006-2017 Dieter Baron and Thomas Klausner
  
   This file is part of libzip, a library to manipulate ZIP files.
   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_FILE_GET_COMMENT(3)</title>
</head>
<body>
<table class="head">
  <tr>
    <td class="head-ltitle">ZIP_FILE_GET_COMMENT(3)</td>
    <td class="head-vol">Library Functions Manual</td>
    <td class="head-rtitle">ZIP_FILE_GET_COMMENT(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_file_get_comment</b> &#x2014;
  <span class="Nd" title="Nd">get comment for file in zip</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">const char *</var>
<br/>
<b class="Fn" title="Fn">zip_file_get_comment</b>(<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_uint32_t
  *lenp</var>,
  <var class="Fa" title="Fa" style="white-space: nowrap;">zip_flags_t
  flags</var>);
<h1 class="Sh" title="Sh" id="DESCRIPTION"><a class="selflink" href="#DESCRIPTION">DESCRIPTION</a></h1>
The <b class="Fn" title="Fn">zip_file_get_comment</b>() function returns the
  comment for the file at position <var class="Ar" title="Ar">index</var> in the
  zip archive. The name is in UTF-8 encoding unless
  <code class="Dv" title="Dv">ZIP_FL_ENC_RAW</code> was specified (see below).
  This pointer should not be modified or
  <a class="Xr" title="Xr" href="free.html">free(3)</a>'d, and becomes invalid
  when <var class="Ar" title="Ar">archive</var> is closed. If
  <var class="Ar" title="Ar">lenp</var> is not
  <code class="Dv" title="Dv">NULL</code>, the integer to which it points will
  be set to the length of the comment. If <var class="Ar" title="Ar">flags</var>
  is set to <code class="Dv" title="Dv">ZIP_FL_UNCHANGED</code>, the original
  unchanged comment is returned.
<div class="Pp"></div>
Additionally, the following <var class="Ar" title="Ar">flags</var> are
  supported:
<div class="Bl-tag" style="margin-left: 6.00ex;">
<dl class="Bl-tag" style="margin-left: 25.80ex;">
  <dt class="It-tag" style="margin-left: -25.80ex;">&#x00A0;</dt>
  <dd class="It-tag">&#x00A0;</dd>
  <dt class="It-tag" style="margin-left: -25.80ex;"><a class="selflink" href="#ZIP_FL_ENC_RAW"><code class="Dv" title="Dv" id="ZIP_FL_ENC_RAW">ZIP_FL_ENC_RAW</code></a></dt>
  <dd class="It-tag">Return the unmodified comment as it is in the ZIP
    archive.</dd>
  <dt class="It-tag" style="margin-left: -25.80ex;">&#x00A0;</dt>
  <dd class="It-tag">&#x00A0;</dd>
  <dt class="It-tag" style="margin-left: -25.80ex;"><a class="selflink" href="#ZIP_FL_ENC_GUESS"><code class="Dv" title="Dv" id="ZIP_FL_ENC_GUESS">ZIP_FL_ENC_GUESS</code></a></dt>
  <dd class="It-tag">(Default.) Guess the encoding of the comment in the ZIP
      archive and convert it to UTF-8, if necessary.</dd>
  <dt class="It-tag" style="margin-left: -25.80ex;">&#x00A0;</dt>
  <dd class="It-tag">&#x00A0;</dd>
  <dt class="It-tag" style="margin-left: -25.80ex;"><a class="selflink" href="#ZIP_FL_ENC_STRICT"><code class="Dv" title="Dv" id="ZIP_FL_ENC_STRICT">ZIP_FL_ENC_STRICT</code></a></dt>
  <dd class="It-tag">Follow the ZIP specification for file names and extend it
      to file comments, expecting them to be encoded in CP-437 in the ZIP
      archive (except if it is a UTF-8 comment from the special extra field).
      Convert it to UTF-8.</dd>
</dl>
</div>
<i class="Em" title="Em">Note</i>: ASCII is a subset of both CP-437 and UTF-8.
<h1 class="Sh" title="Sh" id="RETURN_VALUES"><a class="selflink" href="#RETURN_VALUES">RETURN
  VALUES</a></h1>
Upon successful completion, a pointer to the comment is returned, or
  <code class="Dv" title="Dv">NULL</code> if there is no comment. In case of an
  error, <code class="Dv" title="Dv">NULL</code> is returned and the error code
  in <var class="Ar" title="Ar">archive</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_file_get_comment</b>() fails 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">index</var> is not a valid file
      index in <var class="Ar" title="Ar">archive</var>.</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_file_set_comment.html">zip_file_set_comment(3)</a>,
  <a class="Xr" title="Xr" href="zip_get_archive_comment.html">zip_get_archive_comment(3)</a>
<h1 class="Sh" title="Sh" id="HISTORY"><a class="selflink" href="#HISTORY">HISTORY</a></h1>
<b class="Fn" title="Fn">zip_file_get_comment</b>() was added in libzip 0.11.
<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>
