www.LinuxHowtos.org
LIBZIP
Section: C Library Functions (3)Index Return to Main Contents
BSD mandoc
NAME
libzip - library for manipulating zip archivesLIBRARY
libzip -lzip)SYNOPSIS
In zip.hDESCRIPTION
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
- zip_name_locate3
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
- zip_close3
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
- zip_open3
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
- zip_rename3
Delete Files
- zip_delete3
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)
- zip_close3
- zip_discard3
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