| .\" libzip.mdoc -- general overview of available functions |
| .\" Copyright (C) 2005-2021 Dieter Baron and Thomas Klausner |
| .\" |
| .\" This file is part of libzip, a library to manipulate ZIP archives. |
| .\" The authors can be contacted at <libzip@nih.at> |
| .\" |
| .\" Redistribution and use in source and binary forms, with or without |
| .\" modification, are permitted provided that the following conditions |
| .\" are met: |
| .\" 1. Redistributions of source code must retain the above copyright |
| .\" notice, this list of conditions and the following disclaimer. |
| .\" 2. Redistributions in binary form must reproduce the above copyright |
| .\" notice, this list of conditions and the following disclaimer in |
| .\" the documentation and/or other materials provided with the |
| .\" distribution. |
| .\" 3. The names of the authors may not be used to endorse or promote |
| .\" products derived from this software without specific prior |
| .\" written permission. |
| .\" |
| .\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS |
| .\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
| .\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
| .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY |
| .\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
| .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE |
| .\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
| .\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER |
| .\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR |
| .\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN |
| .\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| .\" |
| .Dd October 15, 2021 |
| .Dt LIBZIP 3 |
| .Os |
| .Sh NAME |
| .Nm libzip |
| .Nd library for manipulating zip archives |
| .Sh LIBRARY |
| libzip (-lzip) |
| .Sh SYNOPSIS |
| .In zip.h |
| .Sh DESCRIPTION |
| .Nm |
| is a library for reading, creating, and modifying zip archives. |
| .Pp |
| The main design criteria for |
| .Nm |
| were: |
| .Bl -bullet -compact |
| .It |
| Do not create corrupt files, even in case of errors. |
| .It |
| Do not delete data. |
| .It |
| Be efficient. |
| .El |
| .Pp |
| For this reason, when modifying zip archives, |
| .Nm |
| writes to a temporary file and replaces the original |
| zip archive atomically. |
| .Pp |
| Below there are two sections listing functions: one for how to read |
| from zip archives and one for how to create/modify them. |
| .Ss THREAD SAFETY |
| In general, different zip archives opened by |
| .Nm |
| 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 |
| .Xr zip_file_add 3 |
| or |
| .Xr zip_file_replace 3 , |
| access to the target archive must be synchronized with access to the |
| source archive as well. |
| .Sh READING ZIP ARCHIVES |
| .Ss open archive |
| .Bl -bullet -compact |
| .It |
| .Xr zip_open 3 |
| .It |
| .Xr zip_fdopen 3 |
| .El |
| .Ss find files |
| .Bl -bullet -compact |
| .It |
| .Xr zip_name_locate 3 |
| .El |
| .Ss read files |
| .Bl -bullet -compact |
| .It |
| .Xr zip_fopen 3 |
| .It |
| .Xr zip_fopen_encrypted 3 |
| .It |
| .Xr zip_fopen_index 3 |
| .It |
| .Xr zip_fopen_index_encrypted 3 |
| .It |
| .Xr zip_fread 3 |
| .It |
| .Xr zip_file_is_seekable 3 |
| .It |
| .Xr zip_fseek 3 |
| (uncompressed files only) |
| .It |
| .Xr zip_ftell 3 |
| .It |
| .Xr zip_fclose 3 |
| .El |
| .Ss close archive |
| .Bl -bullet -compact |
| .It |
| .Xr zip_close 3 |
| .El |
| .Ss miscellaneous |
| .Bl -bullet -compact |
| .It |
| .Xr zip_stat 3 |
| .It |
| .Xr zip_compression_method_supported 3 |
| .It |
| .Xr zip_encryption_method_supported 3 |
| .It |
| .Xr zip_file_get_comment 3 |
| .It |
| .Xr zip_file_get_external_attributes 3 |
| .It |
| .Xr zip_get_archive_comment 3 |
| .It |
| .Xr zip_get_archive_flag 3 |
| .It |
| .Xr zip_get_name 3 |
| .It |
| .Xr zip_get_num_entries 3 |
| .It |
| .Xr zip_set_default_password 3 |
| .El |
| .Sh CREATING/MODIFYING ZIP ARCHIVES |
| .Ss create/open archive |
| .Bl -bullet -compact |
| .It |
| .Xr zip_open 3 |
| .El |
| .Ss add/change files and directories |
| .Bl -bullet -compact |
| .It |
| .Xr zip_dir_add 3 |
| .It |
| .Xr zip_file_add 3 |
| .It |
| .Xr zip_file_replace 3 |
| .It |
| .Xr zip_file_set_comment 3 |
| .It |
| .Xr zip_file_set_dostime 3 |
| .It |
| .Xr zip_file_set_external_attributes 3 |
| .It |
| .Xr zip_file_set_encryption 3 |
| .It |
| .Xr zip_file_set_mtime 3 |
| .It |
| .Xr zip_set_file_compression 3 |
| .It |
| .Xr zip_source_buffer 3 |
| .It |
| .Xr zip_source_file 3 |
| .It |
| .Xr zip_source_filep 3 |
| .It |
| .Xr zip_source_free 3 |
| .It |
| .Xr zip_source_function 3 |
| .It |
| .Xr zip_source_zip 3 |
| .El |
| .Ss rename files |
| .Bl -bullet -compact |
| .It |
| .Xr zip_rename 3 |
| .El |
| .Ss delete files |
| .Bl -bullet -compact |
| .It |
| .Xr zip_delete 3 |
| .El |
| .Ss revert changes |
| .Bl -bullet -compact |
| .It |
| .Xr zip_unchange 3 |
| .It |
| .Xr zip_unchange_all 3 |
| .It |
| .Xr zip_unchange_archive 3 |
| .El |
| .Ss read/modify extra fields |
| .Bl -bullet -compact |
| .It |
| .Xr zip_file_extra_field_by_id 3 |
| .It |
| .Xr zip_file_extra_field_delete 3 |
| .It |
| .Xr zip_file_extra_field_delete_by_id 3 |
| .It |
| .Xr zip_file_extra_field_get 3 |
| .It |
| .Xr zip_file_extra_field_set 3 |
| .It |
| .Xr zip_file_extra_fields_count 3 |
| .It |
| .Xr zip_file_extra_fields_count_by_id 3 |
| .El |
| .Ss close archive (writing) |
| .Bl -bullet -compact |
| .It |
| .Xr zip_close 3 |
| .It |
| .Xr zip_discard 3 |
| .El |
| .Ss miscellaneous (writing) |
| .Bl -bullet -compact |
| .It |
| .Xr zip_file_attributes_init 3 |
| .It |
| .Xr zip_libzip_version 3 |
| .It |
| .Xr zip_register_cancel_callback_with_state 3 |
| .It |
| .Xr zip_register_progress_callback_with_state 3 |
| .It |
| .Xr zip_set_archive_comment 3 |
| .It |
| .Xr zip_set_archive_flag 3 |
| .It |
| .Xr zip_source 3 |
| .El |
| .Sh ERROR HANDLING |
| .Bl -bullet -compact |
| .It |
| .Xr zip_error_strerror 3 |
| .It |
| .Xr zip_strerror 3 |
| .It |
| .Xr zip_file_strerror 3 |
| .It |
| .Xr zip_file_get_error 3 |
| .It |
| .Xr zip_get_error 3 |
| .It |
| .Xr zip_error_init_with_code 3 |
| .It |
| .Xr zip_error_system_type 3 |
| .It |
| .Xr zip_errors 3 |
| .El |
| .Sh AUTHORS |
| .An -nosplit |
| .An Dieter Baron Aq Mt dillo@nih.at |
| and |
| .An Thomas Klausner Aq Mt tk@giga.or.at |