"Fossies" - the Fresh Open Source Software Archive

Member "libzip-1.6.0/man/zip_file_get_external_attributes.man" (24 Jan 2020, 4651 Bytes) of package /linux/misc/libzip-1.6.0.tar.xz:


Caution: As a special service "Fossies" has tried to format the requested manual source page into HTML format but links to other man pages may be missing or even erroneous. Alternatively you can here view or download the uninterpreted manual source code. A member file download can also be achieved by clicking within a package contents listing on the according byte size field. See also the last Fossies "Diffs" side-by-side code changes report for "zip_file_get_external_attributes.man": 1.3.2_vs_1.4.0.

ZIP_FILE_GET_EXTERNAL_ATTRIBUTES

NAME
LIBRARY
SYNOPSIS
DESCRIPTION
RETURN VALUES
EXAMPLES
ERRORS
SEE ALSO
HISTORY
AUTHORS

NAME

zip_file_get_external_attributes − get external attributes for file in zip

LIBRARY

libzip (-lzip)

SYNOPSIS

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

DESCRIPTION

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:

ZIP_OPSYS_ACORN_RISC
ZIP_OPSYS_ALTERNATE_MVS
ZIP_OPSYS_AMIGA
ZIP_OPSYS_ATARI_ST
ZIP_OPSYS_BEOS
ZIP_OPSYS_CPM
ZIP_OPSYS_DOS
ZIP_OPSYS_MACINTOSH
ZIP_OPSYS_MVS
ZIP_OPSYS_OPENVMS
ZIP_OPSYS_OS_2
ZIP_OPSYS_OS_400
ZIP_OPSYS_OS_X
ZIP_OPSYS_TANDEM
ZIP_OPSYS_UNIX
ZIP_OPSYS_VFAT
ZIP_OPSYS_VM_CMS
ZIP_OPSYS_VSE
ZIP_OPSYS_WINDOWS_NTFS (uncommon, use ZIP_OPSYS_DOS instead)
ZIP_OPSYS_Z_SYSTEM

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

RETURN VALUES

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.

EXAMPLES

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

ERRORS

zip_file_get_external_attributes() fails if:

[ZIP_ER_INVAL]

index is not a valid file index in archive.

SEE ALSO

libzip(3), zip_file_set_external_attributes(3)

HISTORY

zip_file_get_external_attributes() was added in libzip 0.11.2.

AUTHORS

Dieter Baron <dillo@nih.at> and Thomas Klausner <tk@giga.or.at>