ZIP_FDOPEN(3) | Library Functions Manual | ZIP_FDOPEN(3)

# NAME

`zip_fdopen` —
open zip archive using open file descriptor

# LIBRARY

libzip (-lzip)

# SYNOPSIS

`#include <zip.h>`

zip_t *
`zip_fdopen`(int fd, int flags, int *errorp);

# DESCRIPTION

The zip archive specified by the open file descriptor fd is opened and a pointer to a struct zip, used to manipulate the archive, is returned. In contrast to zip_open(3), using `zip_fdopen` the archive can only be opened in read-only mode. The fd argument may not be used any longer after calling `zip_fdopen`. The flags are specified by or'ing the following values, or 0 for none of them.

`ZIP_CHECKCONS`
  Perform additional stricter consistency checks on the archive, and error if they fail.

If an error occurs and errorp is non-`NULL`, it will be set to the corresponding error code.

# RETURN VALUES

Upon successful completion `zip_fdopen`() returns a struct zip pointer, and fd should not be used any longer, nor passed to close(2). Otherwise, `NULL` is returned and *errorp is set to indicate the error. In the error case, fd remains unchanged.

# ERRORS

The file specified by fd is prepared for use by libzip(3) unless:

[`ZIP_ER_INCONS`]
  Inconsistencies were found in the file specified by path. This error is often caused by specifying `ZIP_CHECKCONS` but can also happen without it.
[`ZIP_ER_INVAL`]
  The flags argument is invalid. Not all zip_open(3) flags are allowed for `zip_fdopen`, see DESCRIPTION.
[`ZIP_ER_MEMORY`]
  Required memory could not be allocated.
[`ZIP_ER_NOZIP`]
  The file specified by fd is not a zip archive.
[`ZIP_ER_OPEN`]
  The file specified by fd could not be prepared for use by libzip(3).
[`ZIP_ER_READ`]
  A read error occurred; see errno for details.
[`ZIP_ER_SEEK`]
  The file specified by fd does not allow seeks.

# SEE ALSO

libzip(3), zip_close(3), zip_error_strerror(3), zip_open(3)

# HISTORY

`zip_fdopen`() was added in libzip 1.0.

# AUTHORS

Dieter Baron <dillo@nih.at> and Thomas Klausner <tk@giga.or.at>

December 18, 2017 | NetBSD 9.99.41