zip_source_buffer_fragment
,
zip_source_buffer_fragment_create
—
create zip data source from multiple buffer
libzip (-lzip)
#include
<zip.h>
zip_source_t *
zip_source_buffer_fragment
(
zip_t
*archive,
zip_buffer_fragment_t
*fragments,
zip_uint64_t
nfragments,
int
freep);
zip_source_t *
zip_source_buffer_fragment_create
(
zip_buffer_fragment_t
*fragments,
zip_uint64_t
nfragments,
int
freep,
zip_error_t
*error);
The functions
zip_source_buffer_fragment
()
and
zip_source_buffer_fragment_create
()
create a zip source from the data in
fragments.
nfragments specifies the number of fragments.
If
freep is non-zero, the data will be freed
when it is no longer needed.
struct zip_stat {
zip_uint8_t *data; /* pointer to the actual data */
zip_uint64_t length; /* length of this fragment */
};
The data
fragments point to must remain valid
for the lifetime of the created source.
fragments itself can be discarded once the
source is created.
The source can be used to open a zip archive from.
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.
zip_source_buffer
() and
zip_source_buffer_create
() fail if:
-
-
- [
ZIP_ER_INVAL
]
- nfragments is greater than zero and
fragments is
NULL
.
-
-
- [
ZIP_ER_MEMORY
]
- Required memory could not be allocated.
libzip(3),
zip_file_add(3),
zip_file_replace(3),
zip_open_from_source(3),
zip_source(3)
zip_source_buffer_fragment
() and
zip_source_buffer_fragment_create
() were
added in libzip 1.4.0.
Dieter Baron
<
dillo@nih.at>
and
Thomas Klausner
<
tk@giga.or.at>