<!DOCTYPE html>
<html>
<!-- This is an automatically generated file.  Do not edit.
   zip_file_get_external_attributes.mdoc -- get external attributes for file in zip
   Copyright (C) 2013-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"/>
  <link rel="stylesheet" href="../nih-man.css" type="text/css" media="all"/>
  <title>ZIP_FILE_GET_EXTERNAL_ATTRIBUTES(3)</title>
</head>
<body>
<table class="head">
  <tr>
    <td class="head-ltitle">ZIP_FILE_GET_EXTERNAL_ATTRIBUTES(3)</td>
    <td class="head-vol">Library Functions Manual</td>
    <td class="head-rtitle">ZIP_FILE_GET_EXTERNAL_ATTRIBUTES(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_file_get_external_attributes</code> &#x2014;
<div class="Nd" title="Nd">get external attributes for file in zip</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_file_get_external_attributes</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_uint8_t
  *opsys</var>,
  <var class="Fa" title="Fa" style="white-space: nowrap;">zip_uint32_t
  *attributes</var>);
<h1 class="Sh" title="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
The <code class="Fn" title="Fn">zip_file_get_external_attributes</code>()
  function returns the operating system and external attributes for the file at
  position <var class="Ar" title="Ar">index</var> in the zip archive. The
  external attributes usually contain the operating system-specific file
  permissions. If <var class="Ar" title="Ar">flags</var> is set to
  <code class="Dv" title="Dv">ZIP_FL_UNCHANGED</code>, the original unchanged
  values are returned. If <var class="Ar" title="Ar">opsys</var> or
  <var class="Ar" title="Ar">attributes</var> are
  <code class="Dv" title="Dv">NULL</code>, they are not filled in.
<div class="Pp"></div>
The following operating systems are defined by the zip specification:
<ul class="Bl-item Bl-compact" style="margin-left: 6.00ex;">
  <li><a class="permalink" href="#ZIP_OPSYS_ACORN_RISC"><code class="Dv" title="Dv" id="ZIP_OPSYS_ACORN_RISC">ZIP_OPSYS_ACORN_RISC</code></a></li>
  <li><a class="permalink" href="#ZIP_OPSYS_ALTERNATE_MVS"><code class="Dv" title="Dv" id="ZIP_OPSYS_ALTERNATE_MVS">ZIP_OPSYS_ALTERNATE_MVS</code></a></li>
  <li><a class="permalink" href="#ZIP_OPSYS_AMIGA"><code class="Dv" title="Dv" id="ZIP_OPSYS_AMIGA">ZIP_OPSYS_AMIGA</code></a></li>
  <li><a class="permalink" href="#ZIP_OPSYS_ATARI_ST"><code class="Dv" title="Dv" id="ZIP_OPSYS_ATARI_ST">ZIP_OPSYS_ATARI_ST</code></a></li>
  <li><a class="permalink" href="#ZIP_OPSYS_BEOS"><code class="Dv" title="Dv" id="ZIP_OPSYS_BEOS">ZIP_OPSYS_BEOS</code></a></li>
  <li><a class="permalink" href="#ZIP_OPSYS_CPM"><code class="Dv" title="Dv" id="ZIP_OPSYS_CPM">ZIP_OPSYS_CPM</code></a></li>
  <li><a class="permalink" href="#ZIP_OPSYS_DOS"><code class="Dv" title="Dv" id="ZIP_OPSYS_DOS">ZIP_OPSYS_DOS</code></a></li>
  <li><a class="permalink" href="#ZIP_OPSYS_MACINTOSH"><code class="Dv" title="Dv" id="ZIP_OPSYS_MACINTOSH">ZIP_OPSYS_MACINTOSH</code></a></li>
  <li><a class="permalink" href="#ZIP_OPSYS_MVS"><code class="Dv" title="Dv" id="ZIP_OPSYS_MVS">ZIP_OPSYS_MVS</code></a></li>
  <li><a class="permalink" href="#ZIP_OPSYS_OPENVMS"><code class="Dv" title="Dv" id="ZIP_OPSYS_OPENVMS">ZIP_OPSYS_OPENVMS</code></a></li>
  <li><a class="permalink" href="#ZIP_OPSYS_OS_2"><code class="Dv" title="Dv" id="ZIP_OPSYS_OS_2">ZIP_OPSYS_OS_2</code></a></li>
  <li><a class="permalink" href="#ZIP_OPSYS_OS_400"><code class="Dv" title="Dv" id="ZIP_OPSYS_OS_400">ZIP_OPSYS_OS_400</code></a></li>
  <li><a class="permalink" href="#ZIP_OPSYS_OS_X"><code class="Dv" title="Dv" id="ZIP_OPSYS_OS_X">ZIP_OPSYS_OS_X</code></a></li>
  <li><a class="permalink" href="#ZIP_OPSYS_TANDEM"><code class="Dv" title="Dv" id="ZIP_OPSYS_TANDEM">ZIP_OPSYS_TANDEM</code></a></li>
  <li><a class="permalink" href="#ZIP_OPSYS_UNIX"><code class="Dv" title="Dv" id="ZIP_OPSYS_UNIX">ZIP_OPSYS_UNIX</code></a></li>
  <li><a class="permalink" href="#ZIP_OPSYS_VFAT"><code class="Dv" title="Dv" id="ZIP_OPSYS_VFAT">ZIP_OPSYS_VFAT</code></a></li>
  <li><a class="permalink" href="#ZIP_OPSYS_VM_CMS"><code class="Dv" title="Dv" id="ZIP_OPSYS_VM_CMS">ZIP_OPSYS_VM_CMS</code></a></li>
  <li><a class="permalink" href="#ZIP_OPSYS_VSE"><code class="Dv" title="Dv" id="ZIP_OPSYS_VSE">ZIP_OPSYS_VSE</code></a></li>
  <li><a class="permalink" href="#ZIP_OPSYS_WINDOWS_NTFS"><code class="Dv" title="Dv" id="ZIP_OPSYS_WINDOWS_NTFS">ZIP_OPSYS_WINDOWS_NTFS</code></a>
      (uncommon, use <code class="Dv" title="Dv">ZIP_OPSYS_DOS</code>
    instead)</li>
  <li><a class="permalink" href="#ZIP_OPSYS_Z_SYSTEM"><code class="Dv" title="Dv" id="ZIP_OPSYS_Z_SYSTEM">ZIP_OPSYS_Z_SYSTEM</code></a></li>
</ul>
<div class="Pp"></div>
The defines above follow the PKWARE Inc. Appnote; please note that the InfoZIP
  Appnote has a slightly different mapping.
<h1 class="Sh" title="Sh" id="RETURN_VALUES"><a class="permalink" href="#RETURN_VALUES">RETURN
  VALUES</a></h1>
Upon successful completion, 0 is returned. In case of an error,
  <code class="Dv" title="Dv">-1</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="EXAMPLES"><a class="permalink" href="#EXAMPLES">EXAMPLES</a></h1>
The following code can be used to expand
  <var class="Ar" title="Ar">attributes</var> if the operating system is
  <code class="Dv" title="Dv">ZIP_OPSYS_DOS</code>.
<div class="Pp"></div>
<div class="Bd" style="margin-left: 0.00ex;">
<pre class="Li">
#include &lt;sys/stat.h&gt; 
 
#define FA_RDONLY       0x01            // FILE_ATTRIBUTE_READONLY 
#define FA_DIREC        0x10            // FILE_ATTRIBUTE_DIRECTORY 
 
static mode_t 
_zip_dos_attr2mode(zip_uint32_t attr) 
{ 
   mode_t m = S_IRUSR | S_IRGRP | S_IROTH; 
   if (0 == (attr &amp; FA_RDONLY)) 
      m |= S_IWUSR | S_IWGRP | S_IWOTH; 
 
   if (attr &amp; FA_DIREC) 
      m = (S_IFDIR | (m &amp; ~S_IFMT)) | S_IXUSR | S_IXGRP | S_IXOTH; 
 
   return m; 
}
</pre>
</div>
<h1 class="Sh" title="Sh" id="ERRORS"><a class="permalink" href="#ERRORS">ERRORS</a></h1>
<code class="Fn" title="Fn">zip_file_get_external_attributes</code>() fails if:
<dl class="Bl-tag" style="margin-left: 23.40ex;">
  <dt style="margin-left: -23.40ex;">&#x00A0;</dt>
  <dd>&#x00A0;</dd>
  <dt style="margin-left: -23.40ex;">[<a class="permalink" href="#ZIP_ER_INVAL"><code class="Er" title="Er" id="ZIP_ER_INVAL">ZIP_ER_INVAL</code></a>]</dt>
  <dd><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="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_file_set_external_attributes.html">zip_file_set_external_attributes(3)</a>
<h1 class="Sh" title="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1>
<code class="Fn" title="Fn">zip_file_get_external_attributes</code>() was added
  in libzip 0.11.2.
<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.16</td>
  </tr>
</table>
</body>
</html>
