zip_source_zip_file, zip_source_zip_file_create — create data source from zip file
Contents
Description
The functions zip_source_zip_file() and zip_source_zip_file_create() create a zip source from a file in a
zip archive. The srcarchive argument is the (open) zip archive containing the source zip file at index
srcidx. length bytes from offset start will be used in the zip_source. If length is -1, the rest of the
file, starting from start, is used.
If you intend to copy a file from one archive to another, using the flag ZIP_FL_COMPRESSED is more
efficient, as it avoids recompressing the file data.
Supported flags are:
ZIP_FL_COMPRESSED Get the compressed data. This is only supported if the complete file data is
requested (start == 0 and length == -1). This is not supported for changed data.
Default is uncompressed.
ZIP_FL_ENCRYPTED Get the encrypted data. (This flag implies ZIP_FL_COMPRESSED.) This is only
supported if the complete file data is requested (start == 0 and length == -1).
Default is decrypted.
ZIP_FL_UNCHANGED Try to get the original data without any changes that may have been made to
srcarchive after opening it.
Errors
zip_source_zip_file() and zip_source_zip_file_create() fail if:
[ZIP_ER_CHANGED] Unchanged data was requested, but it is not available.
[ZIP_ER_INVAL] srcarchive, srcidx, start, or length are invalid.
[ZIP_ER_MEMORY] Required memory could not be allocated.
Additionally, it can return all error codes from zip_stat_index() and zip_fopen_index().
History
zip_source_zip_file() and zip_source_zip_file_create() were added in libzip 1.10.0.
Library
libzip (-lzip)
Name
zip_source_zip_file, zip_source_zip_file_create — create data source from zip file
Return Values
Upon successful completion, the created source is returned. Otherwise, NULL is returned and the error
code in archive or error is set to indicate the error.
See Also
libzip(3), zip_file_add(3), zip_file_replace(3), zip_source(3)
Synopsis
#include<zip.h>zip_source_t*zip_source_zip_file(zip_t*archive, zip_t*srcarchive, zip_uint64_tsrcidx, zip_flags_tflags,
zip_uint64_tstart, zip_int64_tlength, constchar*password);
zip_source_t*zip_source_zip_file_create(zip_t*srcarchive, zip_uint64_tsrcidx, zip_flags_tflags, zip_uint64_tstart,
zip_int64_tlength, constchar*password, zip_error_t*error);
