Blame libarchive/archive_read_format.3

Packit Service 1d0348
.\" Copyright (c) 2003-2011 Tim Kientzle
Packit Service 1d0348
.\" All rights reserved.
Packit Service 1d0348
.\"
Packit Service 1d0348
.\" Redistribution and use in source and binary forms, with or without
Packit Service 1d0348
.\" modification, are permitted provided that the following conditions
Packit Service 1d0348
.\" are met:
Packit Service 1d0348
.\" 1. Redistributions of source code must retain the above copyright
Packit Service 1d0348
.\"    notice, this list of conditions and the following disclaimer.
Packit Service 1d0348
.\" 2. Redistributions in binary form must reproduce the above copyright
Packit Service 1d0348
.\"    notice, this list of conditions and the following disclaimer in the
Packit Service 1d0348
.\"    documentation and/or other materials provided with the distribution.
Packit Service 1d0348
.\"
Packit Service 1d0348
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
Packit Service 1d0348
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
Packit Service 1d0348
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
Packit Service 1d0348
.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
Packit Service 1d0348
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
Packit Service 1d0348
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
Packit Service 1d0348
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
Packit Service 1d0348
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
Packit Service 1d0348
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
Packit Service 1d0348
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
Packit Service 1d0348
.\" SUCH DAMAGE.
Packit Service 1d0348
.\"
Packit Service 1d0348
.\" $FreeBSD$
Packit Service 1d0348
.\"
Packit Service 1d0348
.Dd February 2, 2012
Packit Service 1d0348
.Dt ARCHIVE_READ_FORMAT 3
Packit Service 1d0348
.Os
Packit Service 1d0348
.Sh NAME
Packit Service 1d0348
.Nm archive_read_support_format_7zip ,
Packit Service 1d0348
.Nm archive_read_support_format_all ,
Packit Service 1d0348
.Nm archive_read_support_format_ar ,
Packit Service 1d0348
.Nm archive_read_support_format_by_code ,
Packit Service 1d0348
.Nm archive_read_support_format_cab ,
Packit Service 1d0348
.Nm archive_read_support_format_cpio ,
Packit Service 1d0348
.Nm archive_read_support_format_empty ,
Packit Service 1d0348
.Nm archive_read_support_format_iso9660 ,
Packit Service 1d0348
.Nm archive_read_support_format_lha ,
Packit Service 1d0348
.Nm archive_read_support_format_mtree ,
Packit Service 1d0348
.Nm archive_read_support_format_rar ,
Packit Service 1d0348
.Nm archive_read_support_format_raw ,
Packit Service 1d0348
.Nm archive_read_support_format_tar ,
Packit Service 1d0348
.Nm archive_read_support_format_xar ,
Packit Service 1d0348
.Nm archive_read_support_format_zip
Packit Service 1d0348
.Nd functions for reading streaming archives
Packit Service 1d0348
.\"
Packit Service 1d0348
.Sh LIBRARY
Packit Service 1d0348
Streaming Archive Library (libarchive, -larchive)
Packit Service 1d0348
.Sh SYNOPSIS
Packit Service 1d0348
.In archive.h
Packit Service 1d0348
.Ft int
Packit Service 1d0348
.Fn archive_read_support_format_7zip "struct archive *"
Packit Service 1d0348
.Ft int
Packit Service 1d0348
.Fn archive_read_support_format_all "struct archive *"
Packit Service 1d0348
.Ft int
Packit Service 1d0348
.Fn archive_read_support_format_ar "struct archive *"
Packit Service 1d0348
.Ft int
Packit Service 1d0348
.Fn archive_read_support_format_by_code "struct archive *" "int"
Packit Service 1d0348
.Ft int
Packit Service 1d0348
.Fn archive_read_support_format_cab "struct archive *"
Packit Service 1d0348
.Ft int
Packit Service 1d0348
.Fn archive_read_support_format_cpio "struct archive *"
Packit Service 1d0348
.Ft int
Packit Service 1d0348
.Fn archive_read_support_format_empty "struct archive *"
Packit Service 1d0348
.Ft int
Packit Service 1d0348
.Fn archive_read_support_format_iso9660 "struct archive *"
Packit Service 1d0348
.Ft int
Packit Service 1d0348
.Fn archive_read_support_format_lha "struct archive *"
Packit Service 1d0348
.Ft int
Packit Service 1d0348
.Fn archive_read_support_format_mtree "struct archive *"
Packit Service 1d0348
.Ft int
Packit Service 1d0348
.Fn archive_read_support_format_rar "struct archive *"
Packit Service 1d0348
.Ft int
Packit Service 1d0348
.Fn archive_read_support_format_raw "struct archive *"
Packit Service 1d0348
.Ft int
Packit Service 1d0348
.Fn archive_read_support_format_tar "struct archive *"
Packit Service 1d0348
.Ft int
Packit Service 1d0348
.Fn archive_read_support_format_xar "struct archive *"
Packit Service 1d0348
.Ft int
Packit Service 1d0348
.Fn archive_read_support_format_zip "struct archive *"
Packit Service 1d0348
.\"
Packit Service 1d0348
.Sh DESCRIPTION
Packit Service 1d0348
.Bl -tag -compact -width indent
Packit Service 1d0348
.It Xo
Packit Service 1d0348
.Fn archive_read_support_format_7zip ,
Packit Service 1d0348
.Fn archive_read_support_format_ar ,
Packit Service 1d0348
.Fn archive_read_support_format_cab ,
Packit Service 1d0348
.Fn archive_read_support_format_cpio ,
Packit Service 1d0348
.Fn archive_read_support_format_iso9660 ,
Packit Service 1d0348
.Fn archive_read_support_format_lha ,
Packit Service 1d0348
.Fn archive_read_support_format_mtree ,
Packit Service 1d0348
.Fn archive_read_support_format_rar ,
Packit Service 1d0348
.Fn archive_read_support_format_raw ,
Packit Service 1d0348
.Fn archive_read_support_format_tar ,
Packit Service 1d0348
.Fn archive_read_support_format_xar ,
Packit Service 1d0348
.Fn archive_read_support_format_zip
Packit Service 1d0348
.Xc
Packit Service 1d0348
Enables support---including auto-detection code---for the
Packit Service 1d0348
specified archive format.
Packit Service 1d0348
For example,
Packit Service 1d0348
.Fn archive_read_support_format_tar
Packit Service 1d0348
enables support for a variety of standard tar formats, old-style tar,
Packit Service 1d0348
ustar, pax interchange format, and many common variants.
Packit Service 1d0348
.It Fn archive_read_support_format_all 
Packit Service 1d0348
Enables support for all available formats except the
Packit Service 1d0348
.Dq raw
Packit Service 1d0348
format (see below).
Packit Service 1d0348
.It Fn archive_read_support_format_by_code
Packit Service 1d0348
Enables a single format specified by the format code.
Packit Service 1d0348
This can be useful when reading a single archive twice;
Packit Service 1d0348
use
Packit Service 1d0348
.Fn archive_format
Packit Service 1d0348
after reading the first time and pass the resulting code
Packit Service 1d0348
to this function to selectively enable only the necessary
Packit Service 1d0348
format support.
Packit Service 1d0348
Note:  In statically-linked executables, this will cause
Packit Service 1d0348
your program to include support for every format.
Packit Service 1d0348
If executable size is a concern, you may wish to avoid
Packit Service 1d0348
using this function.
Packit Service 1d0348
.It Fn archive_read_support_format_empty
Packit Service 1d0348
Enables support for treating empty files as empty archives.
Packit Service 1d0348
Because empty files are valid for several different formats,
Packit Service 1d0348
it is not possible to accurately determine a format for
Packit Service 1d0348
an empty file based purely on contents.
Packit Service 1d0348
So empty files are treated by libarchive as a distinct
Packit Service 1d0348
format.
Packit Service 1d0348
.It Fn archive_read_support_format_raw 
Packit Service 1d0348
The
Packit Service 1d0348
.Dq raw
Packit Service 1d0348
format handler allows libarchive to be used to read arbitrary data.
Packit Service 1d0348
It treats any data stream as an archive with a single entry.
Packit Service 1d0348
The pathname of this entry is
Packit Service 1d0348
.Dq data ;
Packit Service 1d0348
all other entry fields are unset.
Packit Service 1d0348
This is not enabled by
Packit Service 1d0348
.Fn archive_read_support_format_all
Packit Service 1d0348
in order to avoid erroneous handling of damaged archives.
Packit Service 1d0348
.El
Packit Service 1d0348
.\" .Sh EXAMPLE
Packit Service 1d0348
.Sh RETURN VALUES
Packit Service 1d0348
These functions return
Packit Service 1d0348
.Cm ARCHIVE_OK
Packit Service 1d0348
on success, or
Packit Service 1d0348
.Cm ARCHIVE_FATAL .
Packit Service 1d0348
.\"
Packit Service 1d0348
.Sh ERRORS
Packit Service 1d0348
Detailed error codes and textual descriptions are available from the
Packit Service 1d0348
.Fn archive_errno
Packit Service 1d0348
and
Packit Service 1d0348
.Fn archive_error_string
Packit Service 1d0348
functions.
Packit Service 1d0348
.\"
Packit Service 1d0348
.Sh SEE ALSO
Packit Service 1d0348
.Xr tar 1 ,
Packit Service 1d0348
.Xr libarchive 3 ,
Packit Service 1d0348
.Xr archive_read_data 3 ,
Packit Service 1d0348
.Xr archive_read_filter 3 ,
Packit Service 1d0348
.Xr archive_read_set_options 3 ,
Packit Service 1d0348
.Xr archive_util 3 ,
Packit Service 1d0348
.Xr tar 5
Packit Service 1d0348
.Sh BUGS
Packit Service 1d0348
Many traditional archiver programs treat
Packit Service 1d0348
empty files as valid empty archives.
Packit Service 1d0348
For example, many implementations of
Packit Service 1d0348
.Xr tar 1
Packit Service 1d0348
allow you to append entries to an empty file.
Packit Service 1d0348
Of course, it is impossible to determine the format of an empty file
Packit Service 1d0348
by inspecting the contents, so this library treats empty files as
Packit Service 1d0348
having a special
Packit Service 1d0348
.Dq empty
Packit Service 1d0348
format.
Packit Service 1d0348
.Pp
Packit Service 1d0348
Using the
Packit Service 1d0348
.Dq raw
Packit Service 1d0348
handler together with any other handler will often work
Packit Service 1d0348
but can produce surprising results.