Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
LIBZIP(3)		     Library Functions Manual		       LIBZIP(3)

NAME
     libzip -- library for manipulating zip archives

LIBRARY
     libzip (-lzip)

SYNOPSIS
     #include <zip.h>

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

     The main design criteria for libzip 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, libzip 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_close(3) or zip_discard(3).

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

DATA TYPES
     These  data  types  correspond to central concepts in libzip.  Most of them
     are private, meaning you can't allocate them or access  their  members  di-
     rectly.   This allows extending the structures in the future without break-
     ing 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  read-
     ing.  See zip_file(5).

   zip_source_t
     This  type  represents  a	source	(or destination) of data.  It is used in
     libzip 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_source(5).

   zip_error_t
     This type represents information about an error.  Its type can  be  checked
     against  pre-defined  constants and it can be converted to a human readable
     string.  See zip_error(5).

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.

   Directory Separator
     The zip format requires the use of forward slash (`/') as directory separa-
     tor.   Since  backslash (`\') can be part of a valid file name on Unix sys-
     tems, libzip does not automatically convert them, even on Windows.   It  is
     the  responsibility  of the programmer to ensure that all directory separa-
     tors are passed as forward slashes to libzip.

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 ac-
     cess 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.

READING ZIP ARCHIVES
   Open Archive
     *	 zip_open(3)
     *	 zip_open_from_source(3)
     *	 zip_fdopen(3)

   Get Archive Attributes
     *	 zip_get_archive_comment(3)
     *	 zip_get_archive_flag(3)
     *	 zip_get_num_entries(3)

   Find Files
     *	 zip_name_locate(3)

   Read Files
     *	 zip_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)

   Close Archive
     *	 zip_close(3)

   Get File Attributes
     *	 zip_stat(3)
     *	 zip_file_get_comment(3)
     *	 zip_file_get_external_attributes(3)
     *	 zip_get_name(3)

   Miscellaneous
     *	 zip_compression_method_supported(3)
     *	 zip_encryption_method_supported(3)
     *	 zip_set_default_password(3)

CREATING/MODIFYING ZIP ARCHIVES
   Create/Open Archive
     *	 zip_open(3)

   Add/Change Files and Directories
     *	 zip_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_zip(3)

   Rename Files
     *	 zip_rename(3)

   Delete Files
     *	 zip_delete(3)

   Revert Changes
     *	 zip_unchange(3)
     *	 zip_unchange_all(3)
     *	 zip_unchange_archive(3)

   Read/Modify Extra Fields
     *	 zip_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)

   Close Archive (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(5)

SOURCES
   Create Source
     *	 zip_source_buffer(3)
     *	 zip_source_file(3)
     *	 zip_source_filep(3)
     *	 zip_source_function(3)
     *	 zip_source_layered(3)
     *	 zip_source_zip(3)

   Using Source
     *	 zip_file_add(3)
     *	 zip_file_replace(3)
     *	 zip_open_from_source(3)

   Implementing Source
     *	 zip_source_pass_to_lower_layer(3)

   Source Life Cycle
     *	 zip_source_free(3)
     *	 zip_source_keep(3)

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)

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

FreeBSD ports 15.quarterly	   May 5, 2025			       LIBZIP(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=libzip&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help