LIBRARY
libzip (-lzip)SYNOPSIS
#include <zip.h>const zip_uint8_t *
- zip_file_extra_field_get(zip_t *archive, zip_uint64_t index, zip_uint16_t extra_field_index, zip_uint16_t *idp, zip_uint16_t *lenp, zip_flags_t flags);
const zip_uint8_t *
- zip_file_extra_field_get_by_id(zip_t *archive, zip_uint64_t index, zip_uint16_t extra_field_id, zip_uint16_t extra_field_index, zip_uint16_t *lenp, zip_flags_t flags);
DESCRIPTION
The following flags are supported:
-
- ZIP_FL_CENTRAL
- Return extra fields from the archive's central directory.
- ZIP_FL_LOCAL
- Return extra fields from the local file headers.
- ZIP_FL_UNCHANGED
- Return the original unchanged extra fields, ignoring any changes made.
The zip_file_extra_field_get_by_id() function returns the extra field with ID (two-byte signature) extra_field_id and index extra_field_index (in other words, the extra_field_index'th extra field with ID extra_field_id) The other arguments are the same as for zip_file_extra_field_get().
RETURN VALUES
Upon successful completion, a pointer to an extra field is returned, or NULL if there is no extra field with that extra_field_index for the file with index index. In case of an error, NULL is returned and the error code in archive is set to indicate the error.ERRORS
zip_file_extra_field_get() and zip_file_extra_field_get_by_id() fail if:- [ZIP_ER_NOENT]
- index is not a valid file index in archive, or extra_field_index is not a valid extra file index (for ID extra_field_id).
CAVEATS
Please note that the extra field IDs 0x0001 (ZIP64 extension), 0x6375 (Infozip UTF-8 comment), and 0x7075 (Infozip UTF-8 file name) can not be read using zip_file_extra_field_get() since they are used by libzip(3) internally.