<!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 Bd-indent Bl-compac">
  <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">
<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">
  <dt>&#x00A0;</dt>
  <dd>&#x00A0;</dd>
  <dt>[<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.27</td>
  </tr>
</table>
</body>
</html>
