Manpages - zip_file_get_external_attributes.3

libzip (-lzip)

The

function returns the operating system and external attributes for the file at position

in the zip archive. The external attributes usually contain the operating system-specific file permissions. If

is set to

the original unchanged values are returned. If

or

are

they are not filled in.

The following operating systems are defined by the zip specification:

(uncommon, use

instead)

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,

is returned and the error code in

is set to indicate the error.

The following code can be used to expand

if the operating system is

#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; }

fails if:

is not a valid file index in

was added in libzip 0.11.2.

and

Author: dt

Created: 2022-02-20 Sun 21:24