GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
ZIP_FILE_GET_EXTERNAL_ATTRIBUTES(3) FreeBSD Library Functions Manual ZIP_FILE_GET_EXTERNAL_ATTRIBUTES(3)

zip_file_get_external_attributes
get external attributes for file in zip

libzip (-lzip)

#include <zip.h>

int
zip_file_get_external_attributes(zip_t *archive, zip_uint64_t index, zip_flags_t flags, zip_uint8_t *opsys, zip_uint32_t *attributes);

The zip_file_get_external_attributes() function returns the operating system and external attributes for the file at position index in the zip archive. The external attributes usually contain the operating system-specific file permissions. If flags is set to ZIP_FL_UNCHANGED, the original unchanged values are returned. If opsys or attributes are NULL, they are not filled in.

The following operating systems are defined by the zip specification:

The defines above follow the PKWARE Inc. Appnote; please note that the InfoZIP Appnote has a slightly different mapping.

Upon successful completion, 0 is returned. In case of an error, -1 is returned and the error code in archive is set to indicate the error.

The following code can be used to expand attributes if the operating system is ZIP_OPSYS_DOS.
#include <sys/stat.h>

#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 & FA_RDONLY))
      m |= S_IWUSR | S_IWGRP | S_IWOTH;

   if (attr & FA_DIREC)
      m = (S_IFDIR | (m & ~S_IFMT)) | S_IXUSR | S_IXGRP | S_IXOTH;

   return m;
}

zip_file_get_external_attributes() fails if:
[]
index is not a valid file index in archive.

libzip(3), zip_file_set_external_attributes(3)

zip_file_get_external_attributes() was added in libzip 0.11.2.

Dieter Baron <dillo@nih.at> and Thomas Klausner <tk@giga.or.at>
December 18, 2017 FreeBSD 13.1-RELEASE

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.