"Fossies" - the Fresh Open Source Software Archive

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


Caution: In this restricted "Fossies" environment the current HTML page may not be correctly presentated and may have some non-functional links. You can here alternatively try to browse the pure source code or just view or download the uninterpreted raw source code. If the rendering is insufficient you may try to find and view the page on the libzip-1.6.0.tar.xz project site itself.

ZIP_FILE_EXTRA_FIELD_SET(3) Library Functions Manual ZIP_FILE_EXTRA_FIELD_SET(3)

zip_file_extra_field_set
set extra field for file in zip

libzip (-lzip)

#include <zip.h>

int
zip_file_extra_field_set(zip_t *archive, zip_uint64_t index, zip_uint16_t extra_field_id, zip_uint16_t extra_field_index, const zip_uint8_t *extra_field_data, zip_uint16_t len, zip_flags_t flags);

The zip_file_extra_field_set() function sets the extra field with ID (two-byte signature) extra_field_id and index extra_field_index for the file at position index in the zip archive. The extra field's data will be set to extra_field_data and length len. If a new entry shall be appended, set extra_field_index to ZIP_EXTRA_FIELD_NEW.

At least one of the following flags must be set:

Set extra field in the archive's central directory.
Set extra field in the local file headers.

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 set using zip_file_extra_field_set() since they are set by libzip(3) automatically when needed.

Upon successful completion 0 is returned. Otherwise, -1 is returned and the error code in archive is set to indicate the error.

zip_file_extra_field_set() fails if:
[]
The extra field size is too large (ID and length need 4 bytes; the maximum length of all extra fields for one file combined is 65536 bytes). This error also occurs if extra_field_index is too large.
[]
Required memory could not be allocated.
[]
index is not a valid file index in archive.

libzip(3), zip_file_extra_field_delete(3), zip_file_extra_field_get(3), zip_file_extra_fields_count(3)

zip_file_extra_field_set() was added in libzip 0.11.

Dieter Baron <dillo@nih.at> and Thomas Klausner <tk@giga.or.at>
December 18, 2017 NetBSD 9.99.41