LIBZIP
Section: C Library Functions (3)
Index
Return to Main Contents
BSD mandoc
NAME
libzip
- library for manipulating zip archives
LIBRARY
libzip -lzip)
SYNOPSIS
In zip.h
DESCRIPTION
is a library for reading, creating, and modifying zip archives.
The main design criteria for
were:
-
Maintain a stable API without breaking backwards compatibility.
-
Do not create corrupt files, even in case of errors.
-
Do not delete data.
-
Be efficient.
For this reason, when modifying zip archives,
writes to a temporary file and replaces the original
zip archive atomically.
GENERAL NOTES
When adding files to an archive, the file data is only read when the
new archive is written.
Therefore all files added must remain valid until the archive is
closed with
zip_close3
or
zip_discard3.
Unless explicitly documented, functions should not be passed
NULL
pointers as arguments.
DATA TYPES
These data types correspond to central concepts in
.
Most of them are private, meaning you can't allocate them or access their members directly.
This allows extending the structures in the future without breaking compatibility.
zip_t
This type represents an opened archive.
See
zip(5).
zip_file_t
This type represents a file from an archive that has been opened for reading.
See
zip_file5.
zip_source_t
This type represents a source (or destination) of data.
It is used in
for providing data when adding or replacing files, accessing data from a file inside an archive, and the data for the archive as a whole.
See
zip_source5.
zip_error_t
This type represents information about an error.
Its type can be checked against pr-defined constants and it can be converted to a human readable string.
See
zip_error5.
FILE NAMES
Encoding
Names of files in the host file system are expected in UT-8 encoding.
On Windows, variants for ASCII and UT-16 are also available.
Names of files inside archives are by default expected in UT-8 encoding.
Other encodings can be requested by using the flags
ZIP_FL_ENC_CP437
and
ZIP_FL_ENC_RAW
For details see the relevant man pages.
Directory Separator
The zip format requires the use of forward slash
(`/'
)
as directory separator.
Since backslash
(`'
)
can be part of a valid file name on Unix systems,
does not automatically convert them, even on Windows.
It is the responsibility of the programmer to ensure that all
directory separators are passed as forward slashes to
.
THREAD SAFETY
In general, different zip archives opened by
are independent of each other and can be used by paralle-running
threads without locking.
If you want to use an archive from multiple threads, you have to
synchronize access to it yourself.
If you use an archive as a source for
zip_file_add3
or
zip_file_replace3,
access to the target archive must be synchronized with access to the
source archive as well.
READING ZIP ARCHIVES
Open Archive
-
zip_open3
-
zip_open_from_source3
-
zip_fdopen3
Get Archive Attributes
-
zip_get_archive_comment3
-
zip_get_archive_flag3
-
zip_get_num_entries3
Find Files
Read Files
-
zip_fopen3
-
zip_fopen_encrypted3
-
zip_fopen_index3
-
zip_fopen_index_encrypted3
-
zip_fread3
-
zip_file_is_seekable3
-
zip_fseek3
(uncompressed files only)
-
zip_ftell3
-
zip_fclose3
Close Archive
Get File Attributes
-
zip_stat3
-
zip_file_get_comment3
-
zip_file_get_external_attributes3
-
zip_get_name3
Miscellaneous
-
zip_compression_method_supported3
-
zip_encryption_method_supported3
-
zip_set_default_password3
CREATING/MODIFYING ZIP ARCHIVES
Create/Open Archive
Add/Change Files and Directories
-
zip_dir_add3
-
zip_file_add3
-
zip_file_replace3
-
zip_file_set_comment3
-
zip_file_set_dostime3
-
zip_file_set_external_attributes3
-
zip_file_set_encryption3
-
zip_file_set_mtime3
-
zip_set_file_compression3
-
zip_source_buffer3
-
zip_source_file3
-
zip_source_filep3
-
zip_source_zip3
Rename Files
Delete Files
Revert Changes
-
zip_unchange3
-
zip_unchange_all3
-
zip_unchange_archive3
Read/Modify Extra Fields
-
zip_file_extra_field_delete3
-
zip_file_extra_field_delete_by_id3
-
zip_file_extra_field_get3
-
zip_file_extra_field_get_by_id3
-
zip_file_extra_field_set3
-
zip_file_extra_fields_count3
-
zip_file_extra_fields_count_by_id3
Close Archive (Writing)
Miscellaneous (Writing)
-
zip_file_attributes_init3
-
zip_libzip_version3
-
zip_register_cancel_callback_with_state3
-
zip_register_progress_callback_with_state3
-
zip_set_archive_comment3
-
zip_set_archive_flag3
-
zip_source5
SOURCES
Create Source
-
zip_source_buffer3
-
zip_source_file3
-
zip_source_filep3
-
zip_source_function3
-
zip_source_layered3
-
zip_source_zip3
Using Source
-
zip_file_add3
-
zip_file_replace3
-
zip_open_from_source3
Implementing Source
-
zip_source_pass_to_lower_layer3
Source Life Cycle
-
zip_source_free3
-
zip_source_keep3
ERROR HANDLING
-
zip_error_strerror3
-
zip_strerror3
-
zip_file_strerror3
-
zip_file_get_error3
-
zip_get_error3
-
zip_error_init_with_code3
-
zip_error_set3
-
zip_error_set_from_source3
-
zip_error_system_type3
-
zip_errors3
AUTHORS
An -nosplit
An Dieter Baron Aq Mt
dillo@nih.at
and
An Thomas Klausner Aq Mt
wiz@gatalith.at
Index
- NAME
-
- LIBRARY
-
- SYNOPSIS
-
- DESCRIPTION
-
- GENERAL NOTES
-
- DATA TYPES
-
- zip_t
-
- zip_file_t
-
- zip_source_t
-
- zip_error_t
-
- FILE NAMES
-
- Encoding
-
- Directory Separator
-
- THREAD SAFETY
-
- READING ZIP ARCHIVES
-
- Open Archive
-
- Get Archive Attributes
-
- Find Files
-
- Read Files
-
- Close Archive
-
- Get File Attributes
-
- Miscellaneous
-
- CREATING/MODIFYING ZIP ARCHIVES
-
- Create/Open Archive
-
- Add/Change Files and Directories
-
- Rename Files
-
- Delete Files
-
- Revert Changes
-
- Read/Modify Extra Fields
-
- Close Archive (Writing)
-
- Miscellaneous (Writing)
-
- SOURCES
-
- Create Source
-
- Using Source
-
- Implementing Source
-
- Source Life Cycle
-
- ERROR HANDLING
-
- AUTHORS
-