Provided by: libzip-dev_1.5.1-0ubuntu1_amd64 bug


     zip_fdopen — open zip archive using open file descriptor


     libzip (-lzip)


     #include <zip.h>

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


     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.


     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.


     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.


     libzip(3), zip_close(3), zip_error_to_str(3), zip_open(3)


     zip_fdopen() was added in libzip 1.0.


     Dieter Baron <> and Thomas Klausner <>