1.\" Copyright (c) 2003-2007 Tim Kientzle 2.\" All rights reserved. 3.\" 4.\" Redistribution and use in source and binary forms, with or without 5.\" modification, are permitted provided that the following conditions 6.\" are met: 7.\" 1. Redistributions of source code must retain the above copyright 8.\" notice, this list of conditions and the following disclaimer. 9.\" 2. Redistributions in binary form must reproduce the above copyright 10.\" notice, this list of conditions and the following disclaimer in the 11.\" documentation and/or other materials provided with the distribution. 12.\" 13.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 14.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 17.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 19.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 21.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 22.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 23.\" SUCH DAMAGE. 24.\" 25.\" $FreeBSD: head/lib/libarchive/archive_util.3 201098 2009-12-28 02:58:14Z kientzle $ 26.\" 27.Dd January 8, 2005 28.Dt archive_util 3 29.Os 30.Sh NAME 31.Nm archive_clear_error , 32.Nm archive_compression , 33.Nm archive_compression_name , 34.Nm archive_copy_error , 35.Nm archive_errno , 36.Nm archive_error_string , 37.Nm archive_file_count , 38.Nm archive_format , 39.Nm archive_format_name , 40.Nm archive_set_error 41.Nd libarchive utility functions 42.Sh SYNOPSIS 43.In archive.h 44.Ft void 45.Fn archive_clear_error "struct archive *" 46.Ft int 47.Fn archive_compression "struct archive *" 48.Ft const char * 49.Fn archive_compression_name "struct archive *" 50.Ft void 51.Fn archive_copy_error "struct archive *" "struct archive *" 52.Ft int 53.Fn archive_errno "struct archive *" 54.Ft const char * 55.Fn archive_error_string "struct archive *" 56.Ft int 57.Fn archive_file_count "struct archive *" 58.Ft int 59.Fn archive_format "struct archive *" 60.Ft const char * 61.Fn archive_format_name "struct archive *" 62.Ft void 63.Fo archive_set_error 64.Fa "struct archive *" 65.Fa "int error_code" 66.Fa "const char *fmt" 67.Fa "..." 68.Fc 69.Sh DESCRIPTION 70These functions provide access to various information about the 71.Tn struct archive 72object used in the 73.Xr libarchive 3 74library. 75.Bl -tag -compact -width indent 76.It Fn archive_clear_error 77Clears any error information left over from a previous call. 78Not generally used in client code. 79.It Fn archive_compression 80Returns a numeric code indicating the current compression. 81This value is set by 82.Fn archive_read_open . 83.It Fn archive_compression_name 84Returns a text description of the current compression suitable for display. 85.It Fn archive_copy_error 86Copies error information from one archive to another. 87.It Fn archive_errno 88Returns a numeric error code (see 89.Xr errno 2 ) 90indicating the reason for the most recent error return. 91.It Fn archive_error_string 92Returns a textual error message suitable for display. 93The error message here is usually more specific than that 94obtained from passing the result of 95.Fn archive_errno 96to 97.Xr strerror 3 . 98.It Fn archive_file_count 99Returns a count of the number of files processed by this archive object. 100The count is incremented by calls to 101.Xr archive_write_header 102or 103.Xr archive_read_next_header . 104.It Fn archive_format 105Returns a numeric code indicating the format of the current 106archive entry. 107This value is set by a successful call to 108.Fn archive_read_next_header . 109Note that it is common for this value to change from 110entry to entry. 111For example, a tar archive might have several entries that 112utilize GNU tar extensions and several entries that do not. 113These entries will have different format codes. 114.It Fn archive_format_name 115A textual description of the format of the current entry. 116.It Fn archive_set_error 117Sets the numeric error code and error description that will be returned 118by 119.Fn archive_errno 120and 121.Fn archive_error_string . 122This function should be used within I/O callbacks to set system-specific 123error codes and error descriptions. 124This function accepts a printf-like format string and arguments. 125However, you should be careful to use only the following printf 126format specifiers: 127.Dq %c , 128.Dq %d , 129.Dq %jd , 130.Dq %jo , 131.Dq %ju , 132.Dq %jx , 133.Dq %ld , 134.Dq %lo , 135.Dq %lu , 136.Dq %lx , 137.Dq %o , 138.Dq %u , 139.Dq %s , 140.Dq %x , 141.Dq %% . 142Field-width specifiers and other printf features are 143not uniformly supported and should not be used. 144.El 145.Sh SEE ALSO 146.Xr archive_read 3 , 147.Xr archive_write 3 , 148.Xr libarchive 3 , 149.Xr printf 3 150.Sh HISTORY 151The 152.Nm libarchive 153library first appeared in 154.Fx 5.3 . 155.Sh AUTHORS 156.An -nosplit 157The 158.Nm libarchive 159library was written by 160.An Tim Kientzle Aq kientzle@acm.org . 161