zip_source - Man Page

zip data source structure

Library

libzip (-lzip)

Synopsis

#include <zip.h>

zip_source_t *source;

Description

A zip_source_t represents a data source (or destination when used for writing). libzip(3) uses it for adding or replacing file contents for a file in a zip archive. If the source supports seeking, it can also be used to open zip archives from.

Data can come from a file on disk (zip_source_file(3), zip_source_file_create(3), zip_source_filep(3), or zip_source_filep_create(3)), memory (zip_source_buffer(3), zip_source_buffer_create(3), zip_source_buffer_fragment(3), or zip_source_buffer_fragment_create(3)), a file inside an archive (zip_source_zip(3)), or provided via a callback function (zip_source_function(3) or zip_source_function_create(3)). zip_source_window(3) or zip_source_window_create(3) can be used restrict access to a part of the contained data.

It can also be used as a filter to process the data provided by an underlying zip_source_t (e.g., to compress it or compute a checksum), created with zip_source_layered(3) or zip_source_layered_create(3)).

Sources are freed with zip_source_free(3).

Sources must support reading, and can optionally support seeking and writing.

zip_source_t is reference counted, and created with a reference count of 1. zip_open_from_source(3), zip_file_add(3), and zip_file_replace(3) will take ownership of the passed source (decrement the reference count when they are done using it), so zip_source_free(3) only needs to be called when these functions return an error. The underlying data (file or buffer) must remain valid until the archive is closed. Use zip_source_keep(3) to increase the reference count, for example if you need the source after zip_close(3).

See Also

libzip(3), zip_source_buffer(3), zip_source_file(3), zip_source_filep(3), zip_source_free(3), zip_source_function(3), zip_source_keep(3), zip_source_window(3), zip_source_zip(3)

Authors

Dieter Baron <dillo@nih.at> and Thomas Klausner <wiz@gatalith.at>

Referenced By

libzip(3), zip_file_add(3), zip_open(3), zip_source_begin_write(3), zip_source_buffer(3), zip_source_buffer_fragment(3), zip_source_close(3), zip_source_commit_write(3), zip_source_file(3), zip_source_filep(3), zip_source_free(3), zip_source_function(3), zip_source_is_deleted(3), zip_source_is_seekable(3), zip_source_keep(3), zip_source_layered(3), zip_source_open(3), zip_source_read(3), zip_source_rollback_write(3), zip_source_seek(3), zip_source_seek_write(3), zip_source_stat(3), zip_source_tell(3), zip_source_tell_write(3), zip_source_win32a(3), zip_source_win32handle(3), zip_source_win32w(3), zip_source_window_create(3), zip_source_write(3), zip_source_zip(3), zip_source_zip_file(3).

May 5, 2025