logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

libzip — library for manipulating zip archives

Authors

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

Debian                                           August 21, 2024                                       LIBZIP(3)

Creating/Modifying Zip Archives

Create/OpenArchivezip_open(3)

   Add/ChangeFilesandDirectorieszip_dir_add(3)
       zip_file_add(3)
       zip_file_replace(3)
       zip_file_set_comment(3)
       zip_file_set_dostime(3)
       zip_file_set_external_attributes(3)
       zip_file_set_encryption(3)
       zip_file_set_mtime(3)
       zip_set_file_compression(3)
       zip_source_buffer(3)
       zip_source_file(3)
       zip_source_filep(3)
       zip_source_free(3)
       zip_source_function(3)
       zip_source_layered(3)
       zip_source_zip(3)

   RenameFileszip_rename(3)

   DeleteFileszip_delete(3)

   RevertChangeszip_unchange(3)
       zip_unchange_all(3)
       zip_unchange_archive(3)

   Read/ModifyExtraFieldszip_file_extra_field_delete(3)
       zip_file_extra_field_delete_by_id(3)
       zip_file_extra_field_get(3)
       zip_file_extra_field_get_by_id(3)
       zip_file_extra_field_set(3)
       zip_file_extra_fields_count(3)
       zip_file_extra_fields_count_by_id(3)

   CloseArchive(Writing)zip_close(3)
       zip_discard(3)

   Miscellaneous(Writing)zip_file_attributes_init(3)
       zip_libzip_version(3)
       zip_register_cancel_callback_with_state(3)
       zip_register_progress_callback_with_state(3)
       zip_set_archive_comment(3)
       zip_set_archive_flag(3)
       zip_source(3)

Description

libzip is a library for reading, creating, and modifying zip archives.

       The main design criteria for libzip were:
          Do not create corrupt files, even in case of errors.
          Do not delete data.
          Be efficient.

       For this reason, when modifying zip archives, libzip writes to a temporary file and replaces the original
       zip archive atomically.

       Below  there are two sections listing functions: one for how to read from zip archives and one for how to
       create/modify them.

Error Handling

zip_error_strerror(3)
       zip_strerror(3)
       zip_file_strerror(3)
       zip_file_get_error(3)
       zip_get_error(3)
       zip_error_init_with_code(3)
       zip_error_set(3)
       zip_error_set_from_source(3)
       zip_error_system_type(3)
       zip_errors(3)

File Names

Encoding
       Names of files in the host file system are expected in UTF-8 encoding.  On Windows,  variants  for  ASCII
       and UTF-16 are also available.

       Names  of  files  inside  archives  are  by  default  expected in UTF-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.

   DirectorySeparator
       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,  libzip  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 libzip.

General Notes

       Unless explicitly documented, functions should not be passed NULL pointers as arguments.

Library

       libzip (-lzip)

Name

       libzip — library for manipulating zip archives

Reading Zip Archives

OpenArchivezip_open(3)
       zip_fdopen(3)

   FindFileszip_name_locate(3)

   ReadFileszip_fopen(3)
       zip_fopen_encrypted(3)
       zip_fopen_index(3)
       zip_fopen_index_encrypted(3)
       zip_fread(3)
       zip_file_is_seekable(3)
       zip_fseek(3) (uncompressed files only)
       zip_ftell(3)
       zip_fclose(3)

   CloseArchivezip_close(3)

   Miscellaneouszip_stat(3)
       zip_compression_method_supported(3)
       zip_encryption_method_supported(3)
       zip_file_get_comment(3)
       zip_file_get_external_attributes(3)
       zip_get_archive_comment(3)
       zip_get_archive_flag(3)
       zip_get_name(3)
       zip_get_num_entries(3)
       zip_set_default_password(3)
       zip_source_pass_to_lower_layer(3)

Synopsis

#include<zip.h>

Thread Safety

       In general, different zip archives opened by libzip are independent of each other  and  can  be  used  by
       parallel-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_add(3)  or
       zip_file_replace(3),  access to the target archive must be synchronized with access to the source archive
       as well.

See Also