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	tempo-
       rary 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 mem-
       bers 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_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  hu-
       man 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	encod-
       ing.    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, libzip does not automatically convert them, even on  Win-
       dows.   It  is  the responsibility of the programmer to ensure that all
       directory separators 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 syn-
       chronize	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.

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.0.quarterly>

home | help