| .\" Automatically generated from an mdoc input file. Do not edit. | |
| .\" zip_stat.mdoc -- get information about file | |
| .\" Copyright (C) 2003-2017 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. | |
| .\" | |
| .TH "ZIP_STAT" "3" "December 18, 2017" "NiH" "Library Functions Manual" | |
| .nh | |
| .if n .ad l | |
| .SH "NAME" | |
| \fBzip_stat\fR, | |
| \fBzip_stat_index\fR | |
| \- get information about file | |
| .SH "LIBRARY" | |
| libzip (-lzip) | |
| .SH "SYNOPSIS" | |
| \fB#include <zip.h>\fR | |
| .sp | |
| \fIint\fR | |
| .br | |
| .PD 0 | |
| .HP 4n | |
| \fBzip_stat\fR(\fIzip_t\ *archive\fR, \fIconst\ char\ *fname\fR, \fIzip_flags_t\ flags\fR, \fIzip_stat_t\ *sb\fR); | |
| .PD | |
| .PP | |
| \fIint\fR | |
| .br | |
| .PD 0 | |
| .HP 4n | |
| \fBzip_stat_index\fR(\fIzip_t\ *archive\fR, \fIzip_uint64_t\ index\fR, \fIzip_flags_t\ flags\fR, \fIzip_stat_t\ *sb\fR); | |
| .PD | |
| .SH "DESCRIPTION" | |
| The | |
| \fBzip_stat\fR() | |
| function obtains information about the file named | |
| \fIfname\fR | |
| in | |
| \fIarchive\fR. | |
| The | |
| \fIflags\fR | |
| argument specifies how the name lookup should be done. | |
| Its values are described in | |
| zip_name_locate(3). | |
| Also, | |
| \fRZIP_FL_UNCHANGED\fR | |
| may be | |
| \fIor\fR'ed | |
| to it to request information about the original file in the archive, | |
| ignoring any changes made. | |
| .PP | |
| The | |
| \fBzip_stat_index\fR() | |
| function obtains information about the file at position | |
| \fIindex\fR. | |
| .PP | |
| The | |
| \fIsb\fR | |
| argument is a pointer to a | |
| \fIstruct zip_stat\fR | |
| (shown below), into which information about the file is placed. | |
| .nf | |
| .sp | |
| .RS 0n | |
| struct zip_stat { | |
| zip_uint64_t valid; /* which fields have valid values */ | |
| const char *name; /* name of the file */ | |
| zip_uint64_t index; /* index within archive */ | |
| zip_uint64_t size; /* size of file (uncompressed) */ | |
| zip_uint64_t comp_size; /* size of file (compressed) */ | |
| time_t mtime; /* modification time */ | |
| zip_uint32_t crc; /* crc of file data */ | |
| zip_uint16_t comp_method; /* compression method used */ | |
| zip_uint16_t encryption_method; /* encryption method used */ | |
| zip_uint32_t flags; /* reserved for future use */ | |
| }; | |
| .RE | |
| .fi | |
| The structure pointed to by | |
| \fIsb\fR | |
| must be allocated before calling | |
| \fBzip_stat\fR() | |
| or | |
| \fBzip_stat_index\fR(). | |
| .PP | |
| The | |
| \fIvalid\fR | |
| field of the structure specifies which other fields are valid. | |
| Check if the flag defined by the following defines are in | |
| \fIvalid\fR | |
| before accessing the fields: | |
| .RS 6n | |
| .PD 0 | |
| .TP 30n | |
| \fRZIP_STAT_NAME\fR | |
| \fIname\fR | |
| .TP 30n | |
| \fRZIP_STAT_INDEX\fR | |
| \fIindex\fR | |
| .TP 30n | |
| \fRZIP_STAT_SIZE\fR | |
| \fIsize\fR | |
| .TP 30n | |
| \fRZIP_STAT_COMP_SIZE\fR | |
| \fIcomp_size\fR | |
| .TP 30n | |
| \fRZIP_STAT_MTIME\fR | |
| \fImtime\fR | |
| .TP 30n | |
| \fRZIP_STAT_CRC\fR | |
| \fIcrc\fR | |
| .TP 30n | |
| \fRZIP_STAT_COMP_METHOD\fR | |
| \fIcomp_method\fR | |
| .TP 30n | |
| \fRZIP_STAT_ENCRYPTION_METHOD\fR | |
| \fIencryption_method\fR | |
| .TP 30n | |
| \fRZIP_STAT_FLAGS\fR | |
| \fIflags\fR | |
| .RE | |
| .PD | |
| .SH "RETURN VALUES" | |
| Upon successful completion 0 is returned. | |
| Otherwise, \-1 is returned and the error information in | |
| \fIarchive\fR | |
| is set to indicate the error. | |
| .SH "ERRORS" | |
| The function | |
| \fBzip_stat\fR() | |
| can fail for any of the errors specified for the routine | |
| zip_name_locate(3). | |
| .PP | |
| The function | |
| \fBzip_stat_index\fR() | |
| fails and sets the error information to | |
| \fRZIP_ER_INVAL\fR | |
| if | |
| \fIindex\fR | |
| is invalid. | |
| If | |
| \fRZIP_FL_UNCHANGED\fR | |
| is not set and no information can be obtained from the source | |
| callback, the error information is set to | |
| \fRZIP_ER_CHANGED\fR. | |
| .SH "SEE ALSO" | |
| libzip(3), | |
| zip_get_num_entries(3), | |
| zip_name_locate(3), | |
| zip_stat_init(3) | |
| .SH "HISTORY" | |
| \fBzip_stat\fR() | |
| was added in libzip 0.6. | |
| In libzip 0.11 the type of | |
| \fIflags\fR | |
| was changed from | |
| \fIint\fR | |
| to | |
| \fIzip_flags_t\fR. | |
| .PP | |
| \fBzip_stat_index\fR() | |
| was added in libzip 0.6. | |
| In libzip 0.10 the type of | |
| \fIindex\fR | |
| was changed from | |
| \fIint\fR | |
| to | |
| \fIzip_uint64_t\fR. | |
| In libzip 0.11 the type of | |
| \fIflags\fR | |
| was changed from | |
| \fIint\fR | |
| to | |
| \fIzip_flags_t\fR. | |
| .SH "AUTHORS" | |
| Dieter Baron <\fIdillo@nih.at\fR> | |
| and | |
| Thomas Klausner <\fItk@giga.or.at\fR> |