mirror of
https://github.com/cmclark00/retro-imager.git
synced 2025-05-19 08:25:21 +01:00
Qt/QML edition
This commit is contained in:
commit
d7b361ba44
2168 changed files with 721948 additions and 0 deletions
2
dependencies/libarchive-3.4.2/doc/html/.ignore_me
vendored
Normal file
2
dependencies/libarchive-3.4.2/doc/html/.ignore_me
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
*** PLEASE DO NOT DELETE THIS FILE! ***
|
||||
This file is used to track an otherwise empty directory in git.
|
133
dependencies/libarchive-3.4.2/doc/html/Makefile
vendored
Normal file
133
dependencies/libarchive-3.4.2/doc/html/Makefile
vendored
Normal file
|
@ -0,0 +1,133 @@
|
|||
|
||||
default: all
|
||||
|
||||
|
||||
archive_entry.3.html: ../../libarchive/archive_entry.3
|
||||
groff -mdoc -T html ../../libarchive/archive_entry.3 > archive_entry.3.html
|
||||
|
||||
archive_entry_acl.3.html: ../../libarchive/archive_entry_acl.3
|
||||
groff -mdoc -T html ../../libarchive/archive_entry_acl.3 > archive_entry_acl.3.html
|
||||
|
||||
archive_entry_linkify.3.html: ../../libarchive/archive_entry_linkify.3
|
||||
groff -mdoc -T html ../../libarchive/archive_entry_linkify.3 > archive_entry_linkify.3.html
|
||||
|
||||
archive_entry_misc.3.html: ../../libarchive/archive_entry_misc.3
|
||||
groff -mdoc -T html ../../libarchive/archive_entry_misc.3 > archive_entry_misc.3.html
|
||||
|
||||
archive_entry_paths.3.html: ../../libarchive/archive_entry_paths.3
|
||||
groff -mdoc -T html ../../libarchive/archive_entry_paths.3 > archive_entry_paths.3.html
|
||||
|
||||
archive_entry_perms.3.html: ../../libarchive/archive_entry_perms.3
|
||||
groff -mdoc -T html ../../libarchive/archive_entry_perms.3 > archive_entry_perms.3.html
|
||||
|
||||
archive_entry_stat.3.html: ../../libarchive/archive_entry_stat.3
|
||||
groff -mdoc -T html ../../libarchive/archive_entry_stat.3 > archive_entry_stat.3.html
|
||||
|
||||
archive_entry_time.3.html: ../../libarchive/archive_entry_time.3
|
||||
groff -mdoc -T html ../../libarchive/archive_entry_time.3 > archive_entry_time.3.html
|
||||
|
||||
archive_read.3.html: ../../libarchive/archive_read.3
|
||||
groff -mdoc -T html ../../libarchive/archive_read.3 > archive_read.3.html
|
||||
|
||||
archive_read_add_passphrase.3.html: ../../libarchive/archive_read_add_passphrase.3
|
||||
groff -mdoc -T html ../../libarchive/archive_read_add_passphrase.3 > archive_read_add_passphrase.3.html
|
||||
|
||||
archive_read_data.3.html: ../../libarchive/archive_read_data.3
|
||||
groff -mdoc -T html ../../libarchive/archive_read_data.3 > archive_read_data.3.html
|
||||
|
||||
archive_read_disk.3.html: ../../libarchive/archive_read_disk.3
|
||||
groff -mdoc -T html ../../libarchive/archive_read_disk.3 > archive_read_disk.3.html
|
||||
|
||||
archive_read_extract.3.html: ../../libarchive/archive_read_extract.3
|
||||
groff -mdoc -T html ../../libarchive/archive_read_extract.3 > archive_read_extract.3.html
|
||||
|
||||
archive_read_filter.3.html: ../../libarchive/archive_read_filter.3
|
||||
groff -mdoc -T html ../../libarchive/archive_read_filter.3 > archive_read_filter.3.html
|
||||
|
||||
archive_read_format.3.html: ../../libarchive/archive_read_format.3
|
||||
groff -mdoc -T html ../../libarchive/archive_read_format.3 > archive_read_format.3.html
|
||||
|
||||
archive_read_free.3.html: ../../libarchive/archive_read_free.3
|
||||
groff -mdoc -T html ../../libarchive/archive_read_free.3 > archive_read_free.3.html
|
||||
|
||||
archive_read_header.3.html: ../../libarchive/archive_read_header.3
|
||||
groff -mdoc -T html ../../libarchive/archive_read_header.3 > archive_read_header.3.html
|
||||
|
||||
archive_read_new.3.html: ../../libarchive/archive_read_new.3
|
||||
groff -mdoc -T html ../../libarchive/archive_read_new.3 > archive_read_new.3.html
|
||||
|
||||
archive_read_open.3.html: ../../libarchive/archive_read_open.3
|
||||
groff -mdoc -T html ../../libarchive/archive_read_open.3 > archive_read_open.3.html
|
||||
|
||||
archive_read_set_options.3.html: ../../libarchive/archive_read_set_options.3
|
||||
groff -mdoc -T html ../../libarchive/archive_read_set_options.3 > archive_read_set_options.3.html
|
||||
|
||||
archive_util.3.html: ../../libarchive/archive_util.3
|
||||
groff -mdoc -T html ../../libarchive/archive_util.3 > archive_util.3.html
|
||||
|
||||
archive_write.3.html: ../../libarchive/archive_write.3
|
||||
groff -mdoc -T html ../../libarchive/archive_write.3 > archive_write.3.html
|
||||
|
||||
archive_write_blocksize.3.html: ../../libarchive/archive_write_blocksize.3
|
||||
groff -mdoc -T html ../../libarchive/archive_write_blocksize.3 > archive_write_blocksize.3.html
|
||||
|
||||
archive_write_data.3.html: ../../libarchive/archive_write_data.3
|
||||
groff -mdoc -T html ../../libarchive/archive_write_data.3 > archive_write_data.3.html
|
||||
|
||||
archive_write_disk.3.html: ../../libarchive/archive_write_disk.3
|
||||
groff -mdoc -T html ../../libarchive/archive_write_disk.3 > archive_write_disk.3.html
|
||||
|
||||
archive_write_filter.3.html: ../../libarchive/archive_write_filter.3
|
||||
groff -mdoc -T html ../../libarchive/archive_write_filter.3 > archive_write_filter.3.html
|
||||
|
||||
archive_write_finish_entry.3.html: ../../libarchive/archive_write_finish_entry.3
|
||||
groff -mdoc -T html ../../libarchive/archive_write_finish_entry.3 > archive_write_finish_entry.3.html
|
||||
|
||||
archive_write_format.3.html: ../../libarchive/archive_write_format.3
|
||||
groff -mdoc -T html ../../libarchive/archive_write_format.3 > archive_write_format.3.html
|
||||
|
||||
archive_write_free.3.html: ../../libarchive/archive_write_free.3
|
||||
groff -mdoc -T html ../../libarchive/archive_write_free.3 > archive_write_free.3.html
|
||||
|
||||
archive_write_header.3.html: ../../libarchive/archive_write_header.3
|
||||
groff -mdoc -T html ../../libarchive/archive_write_header.3 > archive_write_header.3.html
|
||||
|
||||
archive_write_new.3.html: ../../libarchive/archive_write_new.3
|
||||
groff -mdoc -T html ../../libarchive/archive_write_new.3 > archive_write_new.3.html
|
||||
|
||||
archive_write_open.3.html: ../../libarchive/archive_write_open.3
|
||||
groff -mdoc -T html ../../libarchive/archive_write_open.3 > archive_write_open.3.html
|
||||
|
||||
archive_write_set_options.3.html: ../../libarchive/archive_write_set_options.3
|
||||
groff -mdoc -T html ../../libarchive/archive_write_set_options.3 > archive_write_set_options.3.html
|
||||
|
||||
archive_write_set_passphrase.3.html: ../../libarchive/archive_write_set_passphrase.3
|
||||
groff -mdoc -T html ../../libarchive/archive_write_set_passphrase.3 > archive_write_set_passphrase.3.html
|
||||
|
||||
cpio.5.html: ../../libarchive/cpio.5
|
||||
groff -mdoc -T html ../../libarchive/cpio.5 > cpio.5.html
|
||||
|
||||
libarchive-formats.5.html: ../../libarchive/libarchive-formats.5
|
||||
groff -mdoc -T html ../../libarchive/libarchive-formats.5 > libarchive-formats.5.html
|
||||
|
||||
libarchive.3.html: ../../libarchive/libarchive.3
|
||||
groff -mdoc -T html ../../libarchive/libarchive.3 > libarchive.3.html
|
||||
|
||||
libarchive_changes.3.html: ../../libarchive/libarchive_changes.3
|
||||
groff -mdoc -T html ../../libarchive/libarchive_changes.3 > libarchive_changes.3.html
|
||||
|
||||
libarchive_internals.3.html: ../../libarchive/libarchive_internals.3
|
||||
groff -mdoc -T html ../../libarchive/libarchive_internals.3 > libarchive_internals.3.html
|
||||
|
||||
mtree.5.html: ../../libarchive/mtree.5
|
||||
groff -mdoc -T html ../../libarchive/mtree.5 > mtree.5.html
|
||||
|
||||
tar.5.html: ../../libarchive/tar.5
|
||||
groff -mdoc -T html ../../libarchive/tar.5 > tar.5.html
|
||||
|
||||
bsdtar.1.html: ../../tar/bsdtar.1
|
||||
groff -mdoc -T html ../../tar/bsdtar.1 > bsdtar.1.html
|
||||
|
||||
bsdcpio.1.html: ../../cpio/bsdcpio.1
|
||||
groff -mdoc -T html ../../cpio/bsdcpio.1 > bsdcpio.1.html
|
||||
all: archive_entry.3.html archive_entry_acl.3.html archive_entry_linkify.3.html archive_entry_misc.3.html archive_entry_paths.3.html archive_entry_perms.3.html archive_entry_stat.3.html archive_entry_time.3.html archive_read.3.html archive_read_add_passphrase.3.html archive_read_data.3.html archive_read_disk.3.html archive_read_extract.3.html archive_read_filter.3.html archive_read_format.3.html archive_read_free.3.html archive_read_header.3.html archive_read_new.3.html archive_read_open.3.html archive_read_set_options.3.html archive_util.3.html archive_write.3.html archive_write_blocksize.3.html archive_write_data.3.html archive_write_disk.3.html archive_write_filter.3.html archive_write_finish_entry.3.html archive_write_format.3.html archive_write_free.3.html archive_write_header.3.html archive_write_new.3.html archive_write_open.3.html archive_write_set_options.3.html archive_write_set_passphrase.3.html cpio.5.html libarchive-formats.5.html libarchive.3.html libarchive_changes.3.html libarchive_internals.3.html mtree.5.html tar.5.html bsdtar.1.html bsdcpio.1.html
|
187
dependencies/libarchive-3.4.2/doc/html/archive_entry.3.html
vendored
Normal file
187
dependencies/libarchive-3.4.2/doc/html/archive_entry.3.html
vendored
Normal file
|
@ -0,0 +1,187 @@
|
|||
<!-- Creator : groff version 1.22.3 -->
|
||||
<!-- CreationDate: Tue Feb 11 22:58:43 2020 -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="groff -Thtml, see www.gnu.org">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<meta name="Content-Style" content="text/css">
|
||||
<style type="text/css">
|
||||
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
h1 { text-align: center }
|
||||
</style>
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<p>ARCHIVE_ENTRY(3) BSD Library Functions Manual
|
||||
ARCHIVE_ENTRY(3)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>NAME</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>archive_entry_clear</b>,
|
||||
<b>archive_entry_clone</b>, <b>archive_entry_free</b>,
|
||||
<b>archive_entry_new</b> — functions for managing
|
||||
archive entry descriptions</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>LIBRARY</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Streaming Archive Library
|
||||
(libarchive, -larchive)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SYNOPSIS</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>#include
|
||||
<archive_entry.h></b></p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>struct
|
||||
archive_entry *</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_clear</b>(<i>struct archive_entry *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>struct
|
||||
archive_entry *</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_clone</b>(<i>struct archive_entry *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_free</b>(<i>struct archive_entry *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>struct
|
||||
archive_entry *</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_new</b>(<i>void</i>);</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>DESCRIPTION</b></p>
|
||||
|
||||
<p style="margin-left:6%;">These functions create and
|
||||
manipulate data objects that represent entries within an
|
||||
archive. You can think of a struct archive_entry as a
|
||||
heavy-duty version of struct stat: it includes everything
|
||||
from struct stat plus associated pathname, textual group and
|
||||
user names, etc. These objects are used by libarchive(3) to
|
||||
represent the metadata associated with a particular entry in
|
||||
an archive.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>Create and
|
||||
Destroy</b> <br>
|
||||
There are functions to allocate, destroy, clear, and copy
|
||||
<i>archive_entry</i> objects:</p>
|
||||
|
||||
<p><b>archive_entry_clear</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Erases the object, resetting
|
||||
all internal fields to the same state as a newly-created
|
||||
object. This is provided to allow you to quickly recycle
|
||||
objects without thrashing the heap.</p>
|
||||
|
||||
<p><b>archive_entry_clone</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">A deep copy operation; all text
|
||||
fields are duplicated.</p>
|
||||
|
||||
<p><b>archive_entry_free</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Releases the struct
|
||||
archive_entry object.</p>
|
||||
|
||||
<p><b>archive_entry_new</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Allocate and return a blank
|
||||
struct archive_entry object.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>Function
|
||||
groups</b> <br>
|
||||
Due to high number of functions, the accessor functions can
|
||||
be found in man pages grouped by the purpose.</p>
|
||||
|
||||
<p style="margin-top: 1em">archive_entry_acl(3)</p>
|
||||
|
||||
<p style="margin-left:37%; margin-top: 1em">Access Control
|
||||
List manipulation</p>
|
||||
|
||||
<p style="margin-top: 1em">archive_entry_paths(3)</p>
|
||||
|
||||
<p style="margin-left:37%; margin-top: 1em">Path name
|
||||
manipulation</p>
|
||||
|
||||
<p style="margin-top: 1em">archive_entry_perms(3)</p>
|
||||
|
||||
<p style="margin-left:37%; margin-top: 1em">User, group and
|
||||
mode manipulation</p>
|
||||
|
||||
<p style="margin-top: 1em">archive_entry_stat(3)</p>
|
||||
|
||||
<p style="margin-left:37%; margin-top: 1em">Functions not
|
||||
in the other groups and copying to/from <i>struct
|
||||
stat</i>.</p>
|
||||
|
||||
<p style="margin-top: 1em">archive_entry_time(3)</p>
|
||||
|
||||
<p style="margin-left:37%; margin-top: 1em">Time field
|
||||
manipulation</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">Most of the
|
||||
functions set or read entries in an object. Such functions
|
||||
have one of the following forms:</p>
|
||||
|
||||
<p><b>archive_entry_set_XXXX</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Stores the provided data in the
|
||||
object. In particular, for strings, the pointer is stored,
|
||||
not the referenced string.</p>
|
||||
|
||||
<p><b>archive_entry_copy_XXXX</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">As above, except that the
|
||||
referenced data is copied into the object.</p>
|
||||
|
||||
<p><b>archive_entry_XXXX</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Returns the specified data. In
|
||||
the case of strings, a const-qualified pointer to the string
|
||||
is returned.</p>
|
||||
|
||||
<p style="margin-left:6%;">String data can be set or
|
||||
accessed as wide character strings or normal <i>char</i>
|
||||
strings. The functions that use wide character strings are
|
||||
suffixed with <b>_w</b>. Note that these are different
|
||||
representations of the same data: For example, if you store
|
||||
a narrow string and read the corresponding wide string, the
|
||||
object will transparently convert formats using the current
|
||||
locale. Similarly, if you store a wide string and then store
|
||||
a narrow string for the same data, the previously-set wide
|
||||
string will be discarded in favor of the new data.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SEE ALSO</b></p>
|
||||
|
||||
<p style="margin-left:6%;">archive_entry_acl(3),
|
||||
archive_entry_paths(3), archive_entry_perms(3),
|
||||
archive_entry_time(3), libarchive(3)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>HISTORY</b></p>
|
||||
|
||||
<p style="margin-left:6%;">The <b>libarchive</b> library
|
||||
first appeared in FreeBSD 5.3.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>AUTHORS</b></p>
|
||||
|
||||
<p style="margin-left:6%;">The <b>libarchive</b> library
|
||||
was written by Tim Kientzle <kientzle@acm.org>.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">BSD
|
||||
February 2, 2012 BSD</p>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
570
dependencies/libarchive-3.4.2/doc/html/archive_entry_acl.3.html
vendored
Normal file
570
dependencies/libarchive-3.4.2/doc/html/archive_entry_acl.3.html
vendored
Normal file
|
@ -0,0 +1,570 @@
|
|||
<!-- Creator : groff version 1.22.3 -->
|
||||
<!-- CreationDate: Tue Feb 11 22:58:43 2020 -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="groff -Thtml, see www.gnu.org">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<meta name="Content-Style" content="text/css">
|
||||
<style type="text/css">
|
||||
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
h1 { text-align: center }
|
||||
</style>
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<p>ARCHIVE_ENTRY_ACL(3) BSD Library Functions Manual
|
||||
ARCHIVE_ENTRY_ACL(3)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>NAME</b></p>
|
||||
|
||||
|
||||
<p style="margin-left:6%;"><b>archive_entry_acl_add_entry</b>,
|
||||
<b>archive_entry_acl_add_entry_w</b>,
|
||||
<b>archive_entry_acl_clear</b>,
|
||||
<b>archive_entry_acl_count</b>,
|
||||
<b>archive_entry_acl_from_text</b>,
|
||||
<b>archive_entry_acl_from_text_w</b>,
|
||||
<b>archive_entry_acl_next</b>,
|
||||
<b>archive_entry_acl_reset</b>,
|
||||
<b>archive_entry_acl_to_text</b>,
|
||||
<b>archive_entry_acl_to_text_w</b>,
|
||||
<b>archive_entry_acl_types</b> — functions for
|
||||
manipulating Access Control Lists in archive entry
|
||||
descriptions</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>LIBRARY</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Streaming Archive Library
|
||||
(libarchive, -larchive)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SYNOPSIS</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>#include
|
||||
<archive_entry.h></b></p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p><b>archive_entry_acl_add_entry</b>(<i>struct archive_entry *a</i>,
|
||||
<i>int type</i>, <i>int permset</i>,
|
||||
<i>int tag</i>, <i>int qualifier</i>,
|
||||
<i>const char *name</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p><b>archive_entry_acl_add_entry_w</b>(<i>struct archive_entry *a</i>,
|
||||
<i>int type</i>, <i>int permset</i>,
|
||||
<i>int tag</i>, <i>int qualifier</i>,
|
||||
<i>const wchar_t *name</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_acl_clear</b>(<i>struct archive_entry *a</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_acl_count</b>(<i>struct archive_entry *a</i>,
|
||||
<i>int type</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p><b>archive_entry_acl_from_text</b>(<i>struct archive_entry *a</i>,
|
||||
<i>const char *text</i>,
|
||||
<i>int type</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p><b>archive_entry_acl_from_text_w</b>(<i>struct archive_entry *a</i>,
|
||||
<i>const wchar_t *text</i>,
|
||||
<i>int type</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p><b>archive_entry_acl_next</b>(<i>struct archive_entry *a</i>,
|
||||
<i>int type</i>, <i>int *ret_type</i>,
|
||||
<i>int *ret_permset</i>, <i>int *ret_tag</i>,
|
||||
<i>int *ret_qual</i>,
|
||||
<i>const char **ret_name</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_acl_reset</b>(<i>struct archive_entry *a</i>,
|
||||
<i>int type</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>char
|
||||
*</i></p>
|
||||
|
||||
|
||||
<p><b>archive_entry_acl_to_text</b>(<i>struct archive_entry *a</i>,
|
||||
<i>ssize_t *len_p</i>, <i>int flags</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>wchar_t
|
||||
*</i></p>
|
||||
|
||||
|
||||
<p><b>archive_entry_acl_to_text_w</b>(<i>struct archive_entry *a</i>,
|
||||
<i>ssize_t *len_p</i>, <i>int flags</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_acl_types</b>(<i>struct archive_entry *a</i>);</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>DESCRIPTION</b></p>
|
||||
|
||||
<p style="margin-left:6%;">The ’’Access Control
|
||||
Lists (ACLs)’’ extend the standard Unix
|
||||
permission model. The ACL interface of <b>libarchive</b>
|
||||
supports both POSIX.1e and NFSv4 style ACLs. Use of ACLs is
|
||||
restricted by various levels of ACL support in operating
|
||||
systems, file systems and archive formats.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>POSIX.1e
|
||||
Access Control Lists</b> <br>
|
||||
A POSIX.1e ACL consists of a number of independent entries.
|
||||
Each entry specifies the permission set as a bitmask of
|
||||
basic permissions. Valid permissions in the <i>permset</i>
|
||||
are:</p>
|
||||
|
||||
<p>ARCHIVE_ENTRY_ACL_READ (<b>r</b>) <br>
|
||||
ARCHIVE_ENTRY_ACL_WRITE (<b>w</b>) <br>
|
||||
ARCHIVE_ENTRY_ACL_EXECUTE (<b>x</b>)</p>
|
||||
|
||||
<p style="margin-left:6%;">The permissions correspond to
|
||||
the normal Unix permissions.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The <i>tag</i>
|
||||
specifies the principal to which the permission applies.
|
||||
Valid values are:</p>
|
||||
|
||||
<p>ARCHIVE_ENTRY_ACL_USER</p>
|
||||
|
||||
<p style="margin-left:51%;">The user specified by the name
|
||||
field.</p>
|
||||
|
||||
<p>ARCHIVE_ENTRY_ACL_USER_OBJ</p>
|
||||
|
||||
<p style="margin-left:51%;">The owner of the file.</p>
|
||||
|
||||
<p>ARCHIVE_ENTRY_ACL_GROUP</p>
|
||||
|
||||
<p style="margin-left:51%;">The group specified by the name
|
||||
field.</p>
|
||||
|
||||
<p>ARCHIVE_ENTRY_ACL_GROUP_OBJ</p>
|
||||
|
||||
<p style="margin-left:51%;">The group which owns the
|
||||
file.</p>
|
||||
|
||||
<p>ARCHIVE_ENTRY_ACL_MASK</p>
|
||||
|
||||
<p style="margin-left:51%;">The maximum permissions to be
|
||||
obtained via group permissions.</p>
|
||||
|
||||
<p>ARCHIVE_ENTRY_ACL_OTHER</p>
|
||||
|
||||
<p style="margin-left:51%;">Any principal who is not the
|
||||
file owner or a member of the owning group.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The principals
|
||||
ARCHIVE_ENTRY_ACL_USER_OBJ, ARCHIVE_ENTRY_ACL_GROUP_OBJ and
|
||||
ARCHIVE_ENTRY_ACL_OTHER are equivalent to user, group and
|
||||
other in the classic Unix permission model and specify
|
||||
non-extended ACL entries.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">All files have
|
||||
an access ACL (ARCHIVE_ENTRY_ACL_TYPE_ACCESS). This
|
||||
specifies the permissions required for access to the file
|
||||
itself. Directories have an additional ACL
|
||||
(ARCHIVE_ENTRY_ACL_TYPE_DEFAULT), which controls the initial
|
||||
access ACL for newly-created directory entries.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>NFSv4 Access
|
||||
Control Lists</b> <br>
|
||||
A NFSv4 ACL consists of multiple individual entries called
|
||||
Access Control Entries (ACEs).</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">There are four
|
||||
possible types of a NFSv4 ACE:</p>
|
||||
|
||||
<p>ARCHIVE_ENTRY_ACL_TYPE_ALLOW</p>
|
||||
|
||||
<p style="margin-left:51%;">Allow principal to perform
|
||||
actions requiring given permissions.</p>
|
||||
|
||||
<p>ARCHIVE_ENTRY_ACL_TYPE_DENY</p>
|
||||
|
||||
<p style="margin-left:51%;">Prevent principal from
|
||||
performing actions requiring given permissions.</p>
|
||||
|
||||
<p>ARCHIVE_ENTRY_ACL_TYPE_AUDIT</p>
|
||||
|
||||
<p style="margin-left:51%;">Log access attempts by
|
||||
principal which require given permissions.</p>
|
||||
|
||||
<p>ARCHIVE_ENTRY_ACL_TYPE_ALARM</p>
|
||||
|
||||
<p style="margin-left:51%;">Trigger a system alarm on
|
||||
access attempts by principal which require given
|
||||
permissions.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The <i>tag</i>
|
||||
specifies the principal to which the permission applies.
|
||||
Valid values are:</p>
|
||||
|
||||
<p>ARCHIVE_ENTRY_ACL_USER</p>
|
||||
|
||||
<p style="margin-left:51%;">The user specified by the name
|
||||
field.</p>
|
||||
|
||||
<p>ARCHIVE_ENTRY_ACL_USER_OBJ</p>
|
||||
|
||||
<p style="margin-left:51%;">The owner of the file.</p>
|
||||
|
||||
<p>ARCHIVE_ENTRY_ACL_GROUP</p>
|
||||
|
||||
<p style="margin-left:51%;">The group specified by the name
|
||||
field.</p>
|
||||
|
||||
<p>ARCHIVE_ENTRY_ACL_GROUP_OBJ</p>
|
||||
|
||||
<p style="margin-left:51%;">The group which owns the
|
||||
file.</p>
|
||||
|
||||
<p>ARCHIVE_ENTRY_ACL_EVERYONE</p>
|
||||
|
||||
<p style="margin-left:51%;">Any principal who is not the
|
||||
file owner or a member of the owning group.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">Entries with the
|
||||
ARCHIVE_ENTRY_ACL_USER or ARCHIVE_ENTRY_ACL_GROUP tag store
|
||||
the user and group name in the <i>name</i> string and
|
||||
optionally the user or group ID in the <i>qualifier</i>
|
||||
integer.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">NFSv4 ACE
|
||||
permissions and flags are stored in the same <i>permset</i>
|
||||
bitfield. Some permissions share the same constant and
|
||||
permission character but have different effect on
|
||||
directories than on files. The following ACE permissions are
|
||||
supported:</p>
|
||||
|
||||
<p>ARCHIVE_ENTRY_ACL_READ_DATA (<b>r</b>)</p>
|
||||
|
||||
<p style="margin-left:24%;">Read data (file).</p>
|
||||
|
||||
<p>ARCHIVE_ENTRY_ACL_LIST_DIRECTORY (<b>r</b>)</p>
|
||||
|
||||
<p style="margin-left:24%;">List entries (directory).</p>
|
||||
|
||||
<p>ARCHIVE_ENTRY_ACL_WRITE_DATA (<b>w</b>)</p>
|
||||
|
||||
<p style="margin-left:24%;">Write data (file).</p>
|
||||
|
||||
<p>ARCHIVE_ENTRY_ACL_ADD_FILE (<b>w</b>)</p>
|
||||
|
||||
<p style="margin-left:24%;">Create files (directory).</p>
|
||||
|
||||
<p>ARCHIVE_ENTRY_ACL_EXECUTE (<b>x</b>)</p>
|
||||
|
||||
<p style="margin-left:24%;">Execute file or change into a
|
||||
directory.</p>
|
||||
|
||||
<p>ARCHIVE_ENTRY_ACL_APPEND_DATA (<b>p</b>)</p>
|
||||
|
||||
<p style="margin-left:24%;">Append data (file).</p>
|
||||
|
||||
<p>ARCHIVE_ENTRY_ACL_ADD_SUBDIRECTORY (<b>p</b>)</p>
|
||||
|
||||
<p style="margin-left:24%;">Create subdirectories
|
||||
(directory).</p>
|
||||
|
||||
<p>ARCHIVE_ENTRY_ACL_DELETE_CHILD (<b>D</b>)</p>
|
||||
|
||||
<p style="margin-left:24%;">Remove files and subdirectories
|
||||
inside a directory.</p>
|
||||
|
||||
<p>ARCHIVE_ENTRY_ACL_DELETE (<b>d</b>)</p>
|
||||
|
||||
<p style="margin-left:24%;">Remove file or directory.</p>
|
||||
|
||||
<p>ARCHIVE_ENTRY_ACL_READ_ATTRIBUTES (<b>a</b>)</p>
|
||||
|
||||
<p style="margin-left:24%;">Read file or directory
|
||||
attributes.</p>
|
||||
|
||||
<p>ARCHIVE_ENTRY_ACL_WRITE_ATTRIBUTES (<b>A</b>)</p>
|
||||
|
||||
<p style="margin-left:24%;">Write file or directory
|
||||
attributes.</p>
|
||||
|
||||
<p>ARCHIVE_ENTRY_ACL_READ_NAMED_ATTRS (<b>R</b>)</p>
|
||||
|
||||
<p style="margin-left:24%;">Read named file or directory
|
||||
attributes.</p>
|
||||
|
||||
<p>ARCHIVE_ENTRY_ACL_WRITE_NAMED_ATTRS (<b>W</b>)</p>
|
||||
|
||||
<p style="margin-left:24%;">Write named file or directory
|
||||
attributes.</p>
|
||||
|
||||
<p>ARCHIVE_ENTRY_ACL_READ_ACL (<b>c</b>)</p>
|
||||
|
||||
<p style="margin-left:24%;">Read file or directory ACL.</p>
|
||||
|
||||
<p>ARCHIVE_ENTRY_ACL_WRITE_ACL (<b>C</b>)</p>
|
||||
|
||||
<p style="margin-left:24%;">Write file or directory
|
||||
ACL.</p>
|
||||
|
||||
<p>ARCHIVE_ENTRY_ACL_WRITE_OWNER (<b>o</b>)</p>
|
||||
|
||||
<p style="margin-left:24%;">Change owner of a file or
|
||||
directory.</p>
|
||||
|
||||
<p>ARCHIVE_ENTRY_ACL_SYNCHRONIZE (<b>s</b>)</p>
|
||||
|
||||
<p style="margin-left:24%;">Use synchronous I/O.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The following
|
||||
NFSv4 ACL inheritance flags are supported:</p>
|
||||
|
||||
<p>ARCHIVE_ENTRY_ACL_ENTRY_FILE_INHERIT (<b>f</b>)</p>
|
||||
|
||||
<p style="margin-left:24%;">Inherit parent directory ACE to
|
||||
files.</p>
|
||||
|
||||
<p>ARCHIVE_ENTRY_ACL_ENTRY_DIRECTORY_INHERIT (<b>d</b>)</p>
|
||||
|
||||
<p style="margin-left:24%;">Inherit parent directory ACE to
|
||||
subdirectories.</p>
|
||||
|
||||
<p>ARCHIVE_ENTRY_ACL_ENTRY_INHERIT_ONLY (<b>i</b>)</p>
|
||||
|
||||
<p style="margin-left:24%;">Only inherit, do not apply the
|
||||
permission on the directory itself.</p>
|
||||
|
||||
<p>ARCHIVE_ENTRY_ACL_ENTRY_NO_PROPAGATE_INHERIT
|
||||
(<b>n</b>)</p>
|
||||
|
||||
<p style="margin-left:24%;">Do not propagate inherit flags.
|
||||
Only first-level entries inherit ACLs.</p>
|
||||
|
||||
<p>ARCHIVE_ENTRY_ACL_ENTRY_SUCCESSFUL_ACCESS (<b>S</b>)</p>
|
||||
|
||||
<p style="margin-left:24%;">Trigger alarm or audit on
|
||||
successful access.</p>
|
||||
|
||||
<p>ARCHIVE_ENTRY_ACL_ENTRY_FAILED_ACCESS (<b>F</b>)</p>
|
||||
|
||||
<p style="margin-left:24%;">Trigger alarm or audit on
|
||||
failed access.</p>
|
||||
|
||||
<p>ARCHIVE_ENTRY_ACL_ENTRY_INHERITED (<b>I</b>)</p>
|
||||
|
||||
<p style="margin-left:24%;">Mark that ACE was
|
||||
inherited.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>Functions
|
||||
<br>
|
||||
archive_entry_acl_add_entry</b>() and
|
||||
<b>archive_entry_acl_add_entry_w</b>() add a single ACL
|
||||
entry. For the access ACL and non-extended principals, the
|
||||
classic Unix permissions are updated. An archive entry
|
||||
cannot contain both POSIX.1e and NFSv4 ACL entries.</p>
|
||||
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>archive_entry_acl_clear</b>()
|
||||
removes all ACL entries and resets the enumeration
|
||||
pointer.</p>
|
||||
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>archive_entry_acl_count</b>()
|
||||
counts the ACL entries that have the given type mask.
|
||||
<i>type</i> can be the bitwise-or of</p>
|
||||
|
||||
<p>ARCHIVE_ENTRY_ACL_TYPE_ACCESS <br>
|
||||
ARCHIVE_ENTRY_ACL_TYPE_DEFAULT</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">for POSIX.1e
|
||||
ACLs and</p>
|
||||
|
||||
<p>ARCHIVE_ENTRY_ACL_TYPE_ALLOW <br>
|
||||
ARCHIVE_ENTRY_ACL_TYPE_DENY <br>
|
||||
ARCHIVE_ENTRY_ACL_TYPE_AUDIT <br>
|
||||
ARCHIVE_ENTRY_ACL_TYPE_ALARM</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">for NFSv4 ACLs.
|
||||
For POSIX.1e ACLs if ARCHIVE_ENTRY_ACL_TYPE_ACCESS is
|
||||
included and at least one extended ACL entry is found, the
|
||||
three non-extended ACLs are added.</p>
|
||||
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>archive_entry_acl_from_text</b>()
|
||||
and <b>archive_entry_acl_from_text_w</b>() add new (or merge
|
||||
with existing) ACL entries from (wide) text. The argument
|
||||
<i>type</i> may take one of the following values:</p>
|
||||
|
||||
<p>ARCHIVE_ENTRY_ACL_TYPE_ACCESS <br>
|
||||
ARCHIVE_ENTRY_ACL_TYPE_DEFAULT <br>
|
||||
ARCHIVE_ENTRY_ACL_TYPE_NFS4</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">Supports all
|
||||
formats that can be created with
|
||||
<b>archive_entry_acl_to_text</b>() or respectively
|
||||
<b>archive_entry_acl_to_text_w</b>(). Existing ACL entries
|
||||
are preserved. To get a clean new ACL from text
|
||||
<b>archive_entry_acl_clear</b>() must be called first.
|
||||
Entries prefixed with ’’default:’’
|
||||
are treated as ARCHIVE_ENTRY_ACL_TYPE_DEFAULT unless
|
||||
<i>type</i> is ARCHIVE_ENTRY_ACL_TYPE_NFS4. Invalid entries,
|
||||
non-parseable ACL entries and entries beginning with the
|
||||
’#’ character (comments) are skipped.</p>
|
||||
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>archive_entry_acl_next</b>()
|
||||
return the next entry of the ACL list. This functions may
|
||||
only be called after <b>archive_entry_acl_reset</b>() has
|
||||
indicated the presence of extended ACL entries.</p>
|
||||
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>archive_entry_acl_reset</b>()
|
||||
prepare reading the list of ACL entries with
|
||||
<b>archive_entry_acl_next</b>(). The function returns 0 if
|
||||
no non-extended ACLs are found. In this case, the access
|
||||
permissions should be obtained by archive_entry_mode(3) or
|
||||
set using chmod(2). Otherwise, the function returns the same
|
||||
value as <b>archive_entry_acl_count</b>().</p>
|
||||
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>archive_entry_acl_to_text</b>()
|
||||
and <b>archive_entry_acl_to_text_w</b>() convert the ACL
|
||||
entries for the given type into a (wide) string of ACL
|
||||
entries separated by newline. If the pointer <i>len_p</i> is
|
||||
not NULL, then the function shall return the length of the
|
||||
string (not including the NULL terminator) in the location
|
||||
pointed to by <i>len_p</i>. The <i>flag</i> argument is a
|
||||
bitwise-or.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The following
|
||||
flags are effective only on POSIX.1e ACL:</p>
|
||||
|
||||
<p>ARCHIVE_ENTRY_ACL_TYPE_ACCESS</p>
|
||||
|
||||
<p style="margin-left:24%;">Output access ACLs.</p>
|
||||
|
||||
<p>ARCHIVE_ENTRY_ACL_TYPE_DEFAULT</p>
|
||||
|
||||
<p style="margin-left:24%;">Output POSIX.1e default
|
||||
ACLs.</p>
|
||||
|
||||
<p>ARCHIVE_ENTRY_ACL_STYLE_MARK_DEFAULT</p>
|
||||
|
||||
<p style="margin-left:24%;">Prefix each default ACL entry
|
||||
with the word ’’default:’’.</p>
|
||||
|
||||
<p>ARCHIVE_ENTRY_ACL_STYLE_SOLARIS</p>
|
||||
|
||||
<p style="margin-left:24%;">The mask and other ACLs don not
|
||||
contain a double colon.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The following
|
||||
flags are effecive only on NFSv4 ACL:</p>
|
||||
|
||||
<p>ARCHIVE_ENTRY_ACL_STYLE_COMPACT</p>
|
||||
|
||||
<p style="margin-left:24%;">Do not output minus characters
|
||||
for unset permissions and flags in NFSv4 ACL permission and
|
||||
flag fields.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The following
|
||||
flags are effective on both POSIX.1e and NFSv4 ACL:</p>
|
||||
|
||||
<p>ARCHIVE_ENTRY_ACL_STYLE_EXTRA_ID</p>
|
||||
|
||||
<p style="margin-left:24%;">Add an additional
|
||||
colon-separated field containing the user or group id.</p>
|
||||
|
||||
<p>ARCHIVE_ENTRY_ACL_STYLE_SEPARATOR_COMMA</p>
|
||||
|
||||
<p style="margin-left:24%;">Separate ACL entries with comma
|
||||
instead of newline.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">If the archive
|
||||
entry contains NFSv4 ACLs, all types of NFSv4 ACLs are
|
||||
returned. It the entry contains POSIX.1e ACLs and none of
|
||||
the flags ARCHIVE_ENTRY_ACL_TYPE_ACCESS or
|
||||
ARCHIVE_ENTRY_ACL_TYPE_DEFAULT are specified, both access
|
||||
and default entries are returned and default entries are
|
||||
prefixed with ’’default:’’.</p>
|
||||
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>archive_entry_acl_types</b>()
|
||||
get ACL entry types contained in an archive entry’s
|
||||
ACL. As POSIX.1e and NFSv4 ACL entries cannot be mixed, this
|
||||
function is a very efficient way to detect if an ACL already
|
||||
contains POSIX.1e or NFSv4 ACL entries.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>RETURN VALUES</b></p>
|
||||
|
||||
|
||||
<p style="margin-left:6%;"><b>archive_entry_acl_count</b>()
|
||||
and <b>archive_entry_acl_reset</b>() returns the number of
|
||||
ACL entries that match the given type mask. For POSIX.1e
|
||||
ACLS if the type mask includes ARCHIVE_ENTRY_ACL_TYPE_ACCESS
|
||||
and at least one extended ACL entry exists, the three
|
||||
classic Unix permissions are counted.</p>
|
||||
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>archive_entry_acl_from_text</b>()
|
||||
and <b>archive_entry_acl_from_text_w</b>() return ARCHIVE_OK
|
||||
if all entries were successfully parsed and ARCHIVE_WARN if
|
||||
one or more entries were invalid or non-parseable.</p>
|
||||
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>archive_entry_acl_next</b>()
|
||||
returns ARCHIVE_OK on success, ARCHIVE_EOF if no more ACL
|
||||
entries exist and ARCHIVE_WARN if
|
||||
<b>archive_entry_acl_reset</b>() has not been called
|
||||
first.</p>
|
||||
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>archive_entry_acl_to_text</b>()
|
||||
returns a string representing the ACL entries matching the
|
||||
given type and flags on success or NULL on error.</p>
|
||||
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>archive_entry_acl_to_text_w</b>()
|
||||
returns a wide string representing the ACL entries matching
|
||||
the given type and flags on success or NULL on error.</p>
|
||||
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>archive_entry_acl_types</b>()
|
||||
returns a bitmask of ACL entry types or 0 if archive entry
|
||||
has no ACL entries.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SEE ALSO</b></p>
|
||||
|
||||
<p style="margin-left:6%;">archive_entry(3),
|
||||
libarchive(3)</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">BSD
|
||||
February 15, 2017 BSD</p>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
212
dependencies/libarchive-3.4.2/doc/html/archive_entry_linkify.3.html
vendored
Normal file
212
dependencies/libarchive-3.4.2/doc/html/archive_entry_linkify.3.html
vendored
Normal file
|
@ -0,0 +1,212 @@
|
|||
<!-- Creator : groff version 1.22.3 -->
|
||||
<!-- CreationDate: Tue Feb 11 22:58:43 2020 -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="groff -Thtml, see www.gnu.org">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<meta name="Content-Style" content="text/css">
|
||||
<style type="text/css">
|
||||
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
h1 { text-align: center }
|
||||
</style>
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<p>ARCHIVE_ENTRY_LINKIFY(3) BSD Library Functions Manual
|
||||
ARCHIVE_ENTRY_LINKIFY(3)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>NAME</b></p>
|
||||
|
||||
|
||||
<p style="margin-left:6%;"><b>archive_entry_linkresolver</b>,
|
||||
<b>archive_entry_linkresolver_new</b>,
|
||||
<b>archive_entry_linkresolver_set_strategy</b>,
|
||||
<b>archive_entry_linkresolver_free</b>,
|
||||
<b>archive_entry_linkify</b> — hardlink resolver
|
||||
functions</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>LIBRARY</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Streaming Archive Library
|
||||
(libarchive, -larchive)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SYNOPSIS</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>#include
|
||||
<archive_entry.h></b></p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>struct
|
||||
archive_entry_linkresolver *</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_linkresolver_new</b>(<i>void</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p><b>archive_entry_linkresolver_set_strategy</b>(<i>struct archive_entry_linkresolver *resolver</i>,
|
||||
<i>int format</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p><b>archive_entry_linkresolver_free</b>(<i>struct archive_entry_linkresolver *resolver</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p><b>archive_entry_linkify</b>(<i>struct archive_entry_linkresolver *resolver</i>,
|
||||
<i>struct archive_entry **entry</i>,
|
||||
<i>struct archive_entry **sparse</i>);</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>DESCRIPTION</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Programs that want to create
|
||||
archives have to deal with hardlinks. Hardlinks are handled
|
||||
in different ways by the archive formats. The basic
|
||||
strategies are:</p>
|
||||
|
||||
<p style="margin-top: 1em">1.</p>
|
||||
|
||||
<p style="margin-left:13%;">Ignore hardlinks and store the
|
||||
body for each reference (old cpio, zip).</p>
|
||||
|
||||
<p style="margin-top: 1em">2.</p>
|
||||
|
||||
<p style="margin-left:13%;">Store the body the first time
|
||||
an inode is seen (ustar, pax).</p>
|
||||
|
||||
<p style="margin-top: 1em">3.</p>
|
||||
|
||||
<p style="margin-left:13%;">Store the body the last time an
|
||||
inode is seen (new cpio).</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The
|
||||
<b>archive_entry_linkresolver</b> functions help by
|
||||
providing a unified interface and handling the complexity
|
||||
behind the scene.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The
|
||||
<b>archive_entry_linkresolver</b> functions assume that
|
||||
<i>archive_entry</i> instances have valid nlinks, inode and
|
||||
device values. The inode and device value is used to match
|
||||
entries. The nlinks value is used to determined if all
|
||||
references have been found and if the internal references
|
||||
can be recycled.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The
|
||||
<b>archive_entry_linkresolver_new</b>() function allocates a
|
||||
new link resolver. The instance can be freed using
|
||||
<b>archive_entry_linkresolver_free</b>(). All deferred
|
||||
entries are flushed and the internal storage is freed.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The
|
||||
<b>archive_entry_linkresolver_set_strategy</b>() function
|
||||
selects the optimal hardlink strategy for the given format.
|
||||
The format code can be obtained from archive_format(3). The
|
||||
function can be called more than once, but it is recommended
|
||||
to flush all deferred entries first.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The
|
||||
<b>archive_entry_linkify</b>() function is the core of
|
||||
<b>archive_entry_linkresolver</b>. The <b>entry</b>()
|
||||
argument points to the <i>archive_entry</i> that should be
|
||||
written. Depending on the strategy one of the following
|
||||
actions is taken:</p>
|
||||
|
||||
<p style="margin-top: 1em">1.</p>
|
||||
|
||||
<p style="margin-left:13%;">For the simple archive formats
|
||||
<i>*entry</i> is left unmodified and <i>*sparse</i> is set
|
||||
to NULL.</p>
|
||||
|
||||
<p style="margin-top: 1em">2.</p>
|
||||
|
||||
<p style="margin-left:13%;">For tar like archive formats,
|
||||
<i>*sparse</i> is set to NULL. If <i>*entry</i> is NULL, no
|
||||
action is taken. If the hardlink count of <i>*entry</i> is
|
||||
larger than 1 and the file type is a regular file or
|
||||
symbolic link, the internal list is searched for a matching
|
||||
inode. If such an inode is found, the link count is
|
||||
decremented and the file size of <i>*entry</i> is set to 0
|
||||
to notify that no body should be written. If no such inode
|
||||
is found, a copy of the entry is added to the internal cache
|
||||
with a link count reduced by one.</p>
|
||||
|
||||
<p style="margin-top: 1em">3.</p>
|
||||
|
||||
<p style="margin-left:13%;">For new cpio like archive
|
||||
formats a value for <i>*entry</i> of NULL is used to flush
|
||||
deferred entries. In that case <i>*entry</i> is set to an
|
||||
arbitrary deferred entry and the entry itself is removed
|
||||
from the internal list. If the internal list is empty,
|
||||
<i>*entry</i> is set to NULL. In either case, <i>*sparse</i>
|
||||
is set to NULL and the function returns. If the hardlink
|
||||
count of <i>*entry</i> is one or the file type is a
|
||||
directory or device, <i>*sparse</i> is set to NULL and no
|
||||
further action is taken. Otherwise, the internal list is
|
||||
searched for a matching inode. If such an inode is not
|
||||
found, the entry is added to the internal list, both
|
||||
<i>*entry</i> and <i>*sparse</i> are set to NULL and the
|
||||
function returns. If such an inode is found, the link count
|
||||
is decremented. If it remains larger than one, the existing
|
||||
entry on the internal list is swapped with <i>*entry</i>
|
||||
after retaining the link count. The existing entry is
|
||||
returned in <i>*entry</i>. If the link count reached one,
|
||||
the new entry is also removed from the internal list and
|
||||
returned in <i>*sparse</i>. Otherwise <i>*sparse</i> is set
|
||||
to NULL.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The general
|
||||
usage is therefore:</p>
|
||||
|
||||
<p style="margin-top: 1em">1.</p>
|
||||
|
||||
<p style="margin-left:13%;">For each new archive entry,
|
||||
call <b>archive_entry_linkify</b>().</p>
|
||||
|
||||
<p style="margin-top: 1em">2.</p>
|
||||
|
||||
<p style="margin-left:13%;">Keep in mind that the entries
|
||||
returned may have a size of 0 now.</p>
|
||||
|
||||
<p style="margin-top: 1em">3.</p>
|
||||
|
||||
<p style="margin-left:13%;">If <i>*entry</i> is not NULL,
|
||||
archive it.</p>
|
||||
|
||||
<p style="margin-top: 1em">4.</p>
|
||||
|
||||
<p style="margin-left:13%;">If <i>*sparse</i> is not NULL,
|
||||
archive it.</p>
|
||||
|
||||
<p style="margin-top: 1em">5.</p>
|
||||
|
||||
<p style="margin-left:13%;">After all entries have been
|
||||
written to disk, call <b>archive_entry_linkify</b>() with
|
||||
<i>*entry</i> set to NULL and archive the returned entry as
|
||||
long as it is not NULL.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>RETURN VALUES</b></p>
|
||||
|
||||
|
||||
<p style="margin-left:6%;"><b>archive_entry_linkresolver_new</b>()
|
||||
returns NULL on malloc(3) failures.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SEE ALSO</b></p>
|
||||
|
||||
<p style="margin-left:6%;">archive_entry(3)</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">BSD
|
||||
February 2, 2012 BSD</p>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
91
dependencies/libarchive-3.4.2/doc/html/archive_entry_misc.3.html
vendored
Normal file
91
dependencies/libarchive-3.4.2/doc/html/archive_entry_misc.3.html
vendored
Normal file
|
@ -0,0 +1,91 @@
|
|||
<!-- Creator : groff version 1.22.3 -->
|
||||
<!-- CreationDate: Tue Feb 11 22:58:43 2020 -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="groff -Thtml, see www.gnu.org">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<meta name="Content-Style" content="text/css">
|
||||
<style type="text/css">
|
||||
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
h1 { text-align: center }
|
||||
</style>
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<p>ARCHIVE_ENTRY_MISC(3) BSD Library Functions Manual
|
||||
ARCHIVE_ENTRY_MISC(3)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>NAME</b></p>
|
||||
|
||||
|
||||
<p style="margin-left:6%;"><b>archive_entry_symlink_type</b>,
|
||||
<b>archive_entry_set_symlink_type</b> — miscellaneous
|
||||
functions for manipulating properties of archive_entry</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>LIBRARY</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Streaming Archive Library
|
||||
(libarchive, -larchive)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SYNOPSIS</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>#include
|
||||
<archive_entry.h></b></p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_symlink_type</b>(<i>struct archive_entry *a</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_set_symlink_type</b>(<i>struct archive_entry *a</i>,
|
||||
<i>int</i>);</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>DESCRIPTION</b></p>
|
||||
|
||||
<p style="margin-left:6%;">The function
|
||||
<b>archive_entry_symlink_type</b>() returns and the function
|
||||
<b>archive_entry_set_symlink_type</b>() sets the type of the
|
||||
symbolic link stored in an archive entry. These functions
|
||||
have special meaning on operating systems that support
|
||||
multiple symbolic link types (e.g. Microsoft Windows).</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">Supported values
|
||||
are:</p>
|
||||
|
||||
<p>AE_SYMLINK_TYPE_UNDEFINED</p>
|
||||
|
||||
<p style="margin-left:41%; margin-top: 1em">Symbolic link
|
||||
target type is not defined (default on unix systems)</p>
|
||||
|
||||
<p>AE_SYMLINK_TYPE_FILE</p>
|
||||
|
||||
<p style="margin-left:41%; margin-top: 1em">Symbolic link
|
||||
points to a file</p>
|
||||
|
||||
<p>AE_SYMLINK_TYPE_DIRECTORY</p>
|
||||
|
||||
<p style="margin-left:41%; margin-top: 1em">Symbolic link
|
||||
points to a directory</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SEE ALSO</b></p>
|
||||
|
||||
<p style="margin-left:6%;">archive_entry(3),
|
||||
archive_entry_paths(3), archive_entry_stat(3),
|
||||
libarchive(3)</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">BSD
|
||||
April 15, 2019 BSD</p>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
284
dependencies/libarchive-3.4.2/doc/html/archive_entry_paths.3.html
vendored
Normal file
284
dependencies/libarchive-3.4.2/doc/html/archive_entry_paths.3.html
vendored
Normal file
|
@ -0,0 +1,284 @@
|
|||
<!-- Creator : groff version 1.22.3 -->
|
||||
<!-- CreationDate: Tue Feb 11 22:58:43 2020 -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="groff -Thtml, see www.gnu.org">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<meta name="Content-Style" content="text/css">
|
||||
<style type="text/css">
|
||||
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
h1 { text-align: center }
|
||||
</style>
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<p>ARCHIVE_ENTRY_PATHS(3) BSD Library Functions Manual
|
||||
ARCHIVE_ENTRY_PATHS(3)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>NAME</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>archive_entry_hardlink</b>,
|
||||
<b>archive_entry_hardlink_w</b>,
|
||||
<b>archive_entry_set_hardlink</b>,
|
||||
<b>archive_entry_copy_hardlink</b>,
|
||||
<b>archive_entry_copy_hardlink_w</b>,
|
||||
<b>archive_entry_update_hardlink_utf8</b>,
|
||||
<b>archive_entry_set_link</b>,
|
||||
<b>archive_entry_copy_link</b>,
|
||||
<b>archive_entry_copy_link_w</b>,
|
||||
<b>archive_entry_update_link_utf8</b>,
|
||||
<b>archive_entry_pathname</b>,
|
||||
<b>archive_entry_pathname_w</b>,
|
||||
<b>archive_entry_set_pathname</b>,
|
||||
<b>archive_entry_copy_pathname</b>,
|
||||
<b>archive_entry_copy_pathname_w</b>,
|
||||
<b>archive_entry_update_pathname_utf8</b>,
|
||||
<b>archive_entry_sourcepath</b>,
|
||||
<b>archive_entry_copy_sourcepath</b>,
|
||||
<b>archive_entry_symlink</b>,
|
||||
<b>archive_entry_symlink_w</b>,
|
||||
<b>archive_entry_set_symlink</b>,
|
||||
<b>archive_entry_copy_symlink</b>,
|
||||
<b>archive_entry_copy_symlink_w</b>,
|
||||
<b>archive_entry_update_symlink_utf8</b> — functions
|
||||
for manipulating path names in archive entry
|
||||
descriptions</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>LIBRARY</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Streaming Archive Library
|
||||
(libarchive, -larchive)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SYNOPSIS</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>#include
|
||||
<archive_entry.h></b></p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>const char
|
||||
*</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_hardlink</b>(<i>struct archive_entry *a</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>const wchar_t
|
||||
*</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_hardlink_w</b>(<i>struct archive_entry *a</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_set_hardlink</b>(<i>struct archive_entry *a</i>,
|
||||
<i>const char *path</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_copy_hardlink</b>(<i>struct archive_entry *a</i>,
|
||||
<i>const char *path</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_copy_hardlink_w</b>(<i>struct archive_entry *a</i>,
|
||||
<i>const</i>, <i>wchar_t</i>, <i>*path"</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_update_hardlink_utf8</b>(<i>struct archive_entry *a</i>,
|
||||
<i>const char *path</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_set_link</b>(<i>struct archive_entry *a</i>,
|
||||
<i>const char *path</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_copy_link</b>(<i>struct archive_entry *a</i>,
|
||||
<i>const char *path</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_copy_link_w</b>(<i>struct archive_entry *a</i>,
|
||||
<i>const wchar_t *path</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_update_link_utf8</b>(<i>struct archive_entry *a</i>,
|
||||
<i>const char *path</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>const char
|
||||
*</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_pathname</b>(<i>struct archive_entry *a</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>const wchar_t
|
||||
*</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_pathname_w</b>(<i>struct archive_entry *a</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_set_pathname</b>(<i>struct archive_entry *a</i>,
|
||||
<i>const char *path</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_copy_pathname</b>(<i>struct archive_entry *a</i>,
|
||||
<i>const char *path</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_copy_pathname_w</b>(<i>struct archive_entry *a</i>,
|
||||
<i>const wchar_t *path</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_update_pathname_utf8</b>(<i>struct archive_entry *a</i>,
|
||||
<i>const char *path</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>const char
|
||||
*</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_sourcepath</b>(<i>struct archive_entry *a</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_copy_sourcepath</b>(<i>struct archive_entry *a</i>,
|
||||
<i>const char *path</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>const char
|
||||
*</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_symlink</b>(<i>struct archive_entry *a</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>const wchar_t
|
||||
*</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_symlink_w</b>(<i>struct archive_entry *a</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_set_symlink</b>(<i>struct archive_entry *a</i>,
|
||||
<i>const char *path</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_copy_symlink</b>(<i>struct archive_entry *a</i>,
|
||||
<i>const char *path</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_copy_symlink_w</b>(<i>struct archive_entry *a</i>,
|
||||
<i>const wchar_t *path</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_update_symlink_utf8</b>(<i>struct archive_entry *a</i>,
|
||||
<i>const char *path</i>);</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>DESCRIPTION</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Path names supported by
|
||||
archive_entry(3):</p>
|
||||
|
||||
<p>hardlink</p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">Destination of
|
||||
the hardlink.</p>
|
||||
|
||||
<p>link</p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">Update only.
|
||||
For a symlink, update the destination. Otherwise, make the
|
||||
entry a hardlink and alter the destination for that.</p>
|
||||
|
||||
<p>pathname</p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">Path in the
|
||||
archive</p>
|
||||
|
||||
<p>sourcepath</p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">Path on the
|
||||
disk for use by archive_read_disk(3).</p>
|
||||
|
||||
<p>symlink</p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">Destination of
|
||||
the symbolic link.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">Path names can
|
||||
be provided in one of three different ways:</p>
|
||||
|
||||
<p style="margin-top: 1em">char *</p>
|
||||
|
||||
<p style="margin-left:21%; margin-top: 1em">Multibyte
|
||||
strings in the current locale.</p>
|
||||
|
||||
<p style="margin-top: 1em">wchar_t *</p>
|
||||
|
||||
<p style="margin-left:21%; margin-top: 1em">Wide character
|
||||
strings in the current locale. The accessor functions are
|
||||
named <b>XXX_w</b>().</p>
|
||||
|
||||
<p style="margin-top: 1em">UTF-8</p>
|
||||
|
||||
<p style="margin-left:21%; margin-top: 1em">Unicode strings
|
||||
encoded as UTF-8. These are convenience functions to update
|
||||
both the multibyte and wide character strings at the same
|
||||
time.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The sourcepath
|
||||
is a pure filesystem concept and never stored in an archive
|
||||
directly.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">For that reason,
|
||||
it is only available as multibyte string. The link path is a
|
||||
convenience function for conditionally setting hardlink or
|
||||
symlink destination. It doesn’t have a corresponding
|
||||
get accessor function.</p>
|
||||
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>archive_entry_set_XXX</b>()
|
||||
is an alias for <b>archive_entry_copy_XXX</b>().</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SEE ALSO</b></p>
|
||||
|
||||
<p style="margin-left:6%;">archive_entry(3),
|
||||
libarchive(3)</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">BSD
|
||||
February 2, 2012 BSD</p>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
315
dependencies/libarchive-3.4.2/doc/html/archive_entry_perms.3.html
vendored
Normal file
315
dependencies/libarchive-3.4.2/doc/html/archive_entry_perms.3.html
vendored
Normal file
|
@ -0,0 +1,315 @@
|
|||
<!-- Creator : groff version 1.22.3 -->
|
||||
<!-- CreationDate: Tue Feb 11 22:58:43 2020 -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="groff -Thtml, see www.gnu.org">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<meta name="Content-Style" content="text/css">
|
||||
<style type="text/css">
|
||||
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
h1 { text-align: center }
|
||||
</style>
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<p>ARCHIVE_ENTRY_PERMS(3) BSD Library Functions Manual
|
||||
ARCHIVE_ENTRY_PERMS(3)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>NAME</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>archive_entry_gid</b>,
|
||||
<b>archive_entry_set_gid</b>, <b>archive_entry_uid</b>,
|
||||
<b>archive_entry_set_uid</b>, <b>archive_entry_perm</b>,
|
||||
<b>archive_entry_set_perm</b>, <b>archive_entry_strmode</b>,
|
||||
<b>archive_entry_uname</b>, <b>archive_entry_uname_w</b>,
|
||||
<b>archive_entry_set_uname</b>,
|
||||
<b>archive_entry_copy_uname</b>,
|
||||
<b>archive_entry_copy_uname_w</b>,
|
||||
<b>archive_entry_update_uname_utf8</b>,
|
||||
<b>archive_entry_gname</b>, <b>archive_entry_gname_w</b>,
|
||||
<b>archive_entry_set_gname</b>,
|
||||
<b>archive_entry_copy_gname</b>,
|
||||
<b>archive_entry_copy_gname_w</b>,
|
||||
<b>archive_entry_update_gname_utf8</b>,
|
||||
<b>archive_entry_fflags</b>,
|
||||
<b>archive_entry_fflags_text</b>,
|
||||
<b>archive_entry_set_fflags</b>,
|
||||
<b>archive_entry_copy_fflags_text</b>,
|
||||
<b>archive_entry_copy_fflags_text_w</b> — functions
|
||||
for manipulating ownership and permissions in archive entry
|
||||
descriptions</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>LIBRARY</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Streaming Archive Library
|
||||
(libarchive, -larchive)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SYNOPSIS</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>#include
|
||||
<archive_entry.h></b></p>
|
||||
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>gid_t</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_gid</b>(<i>struct archive_entry *a</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_set_gid</b>(<i>struct archive_entry *a</i>,
|
||||
<i>gid_t gid</i>);</p>
|
||||
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>uid_t</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_uid</b>(<i>struct archive_entry *a</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_set_uid</b>(<i>struct archive_entry *a</i>,
|
||||
<i>uid_t uid</i>);</p>
|
||||
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>mode_t</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_perm</b>(<i>struct archive_entry *a</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_set_perm</b>(<i>struct archive_entry *a</i>,
|
||||
<i>mode_t mode</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>const char
|
||||
*</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_strmode</b>(<i>struct archive_entry *a</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>const char
|
||||
*</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_gname</b>(<i>struct archive_entry *a</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>const wchar_t
|
||||
*</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_gname_w</b>(<i>struct archive_entry *a</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_set_gname</b>(<i>struct archive_entry *a</i>,
|
||||
<i>const char *a</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_copy_gname</b>(<i>struct archive_entry *a</i>,
|
||||
<i>const char *name</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_copy_gname_w</b>(<i>struct archive_entry *a</i>,
|
||||
<i>const wchar_t *name</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_update_gname_utf8</b>(<i>struct archive_entry *a</i>,
|
||||
<i>const char *name</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>const char
|
||||
*</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_uname</b>(<i>struct archive_entry *a</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>const wchar_t
|
||||
*</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_uname_w</b>(<i>struct archive_entry *a</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_set_uname</b>(<i>struct archive_entry *a</i>,
|
||||
<i>const char *name</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_copy_uname</b>(<i>struct archive_entry *a</i>,
|
||||
<i>const char *name</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_copy_uname_w</b>(<i>struct archive_entry *a</i>,
|
||||
<i>const wchar_t *name</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_update_uname_utf8</b>(<i>struct archive_entry *a</i>,
|
||||
<i>const char *name</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p><b>archive_entry_fflags</b>(<i>struct archive_entry *a</i>,
|
||||
<i>unsigned long *set_bits</i>,
|
||||
<i>unsigned long *clear_bits</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>const char
|
||||
*</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_fflags_text</b>(<i>struct archive_entry *a</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p><b>archive_entry_set_fflags</b>(<i>struct archive_entry *a</i>,
|
||||
<i>unsigned long set_bits</i>,
|
||||
<i>unsigned long clear_bits</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>const char
|
||||
*</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_copy_fflags_text</b>(<i>struct archive_entry *a</i>,
|
||||
<i>const char *text</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>const wchar_t
|
||||
*</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_copy_fflags_text_w</b>(<i>struct archive_entry *a</i>,
|
||||
<i>const wchar_t *text</i>);</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>DESCRIPTION</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>User id, group id and
|
||||
mode</b> <br>
|
||||
The functions <b>archive_entry_uid</b>(),
|
||||
<b>archive_entry_gid</b>(), and <b>archive_entry_perm</b>()
|
||||
can be used to extract the user id, group id and permission
|
||||
from the given entry. The corresponding functions
|
||||
<b>archive_entry_set_uid</b>(),
|
||||
<b>archive_entry_set_gid</b>(), and
|
||||
<b>archive_entry_set_perm</b>() store the given user id,
|
||||
group id and permission in the entry. The permission is also
|
||||
set as a side effect of calling
|
||||
<b>archive_entry_set_mode</b>().</p>
|
||||
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>archive_entry_strmode</b>()
|
||||
returns a string representation of the permission as used by
|
||||
the long mode of ls(1).</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>User and
|
||||
group name</b> <br>
|
||||
User and group names can be provided in one of three
|
||||
different ways:</p>
|
||||
|
||||
<p style="margin-top: 1em">char *</p>
|
||||
|
||||
<p style="margin-left:21%; margin-top: 1em">Multibyte
|
||||
strings in the current locale.</p>
|
||||
|
||||
<p style="margin-top: 1em">wchar_t *</p>
|
||||
|
||||
<p style="margin-left:21%; margin-top: 1em">Wide character
|
||||
strings in the current locale. The accessor functions are
|
||||
named <b>XXX_w</b>().</p>
|
||||
|
||||
<p style="margin-top: 1em">UTF-8</p>
|
||||
|
||||
<p style="margin-left:21%; margin-top: 1em">Unicode strings
|
||||
encoded as UTF-8. These are convenience functions to update
|
||||
both the multibyte and wide character strings at the same
|
||||
time.</p>
|
||||
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>archive_entry_set_XXX</b>()
|
||||
is an alias for <b>archive_entry_copy_XXX</b>().</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>File
|
||||
Flags</b> <br>
|
||||
File flags are transparently converted between a bitmap
|
||||
representation and a textual format. For example, if you set
|
||||
the bitmap and ask for text, the library will build a
|
||||
canonical text format. However, if you set a text format and
|
||||
request a text format, you will get back the same text, even
|
||||
if it is ill-formed. If you need to canonicalize a textual
|
||||
flags string, you should first set the text form, then
|
||||
request the bitmap form, then use that to set the bitmap
|
||||
form. Setting the bitmap format will clear the internal text
|
||||
representation and force it to be reconstructed when you
|
||||
next request the text form.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The bitmap
|
||||
format consists of two integers, one containing bits that
|
||||
should be set, the other specifying bits that should be
|
||||
cleared. Bits not mentioned in either bitmap will be
|
||||
ignored. Usually, the bitmap of bits to be cleared will be
|
||||
set to zero. In unusual circumstances, you can force a
|
||||
fully-specified set of file flags by setting the bitmap of
|
||||
flags to clear to the complement of the bitmap of flags to
|
||||
set. (This differs from fflagstostr(3), which only includes
|
||||
names for set bits.) Converting a bitmap to a textual string
|
||||
is a platform-specific operation; bits that are not
|
||||
meaningful on the current platform will be ignored.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The canonical
|
||||
text format is a comma-separated list of flag names. The
|
||||
<b>archive_entry_copy_fflags_text</b>() and
|
||||
<b>archive_entry_copy_fflags_text_w</b>() functions parse
|
||||
the provided text and set the internal bitmap values. This
|
||||
is a platform-specific operation; names that are not
|
||||
meaningful on the current platform will be ignored. The
|
||||
function returns a pointer to the start of the first name
|
||||
that was not recognized, or NULL if every name was
|
||||
recognized. Note that every name — including names
|
||||
that follow an unrecognized name — will be evaluated,
|
||||
and the bitmaps will be set to reflect every name that is
|
||||
recognized. (In particular, this differs from
|
||||
strtofflags(3), which stops parsing at the first
|
||||
unrecognized name.)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SEE ALSO</b></p>
|
||||
|
||||
<p style="margin-left:6%;">archive_entry(3),
|
||||
archive_entry_acl(3), archive_read_disk(3),
|
||||
archive_write_disk(3), libarchive(3)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>BUGS</b></p>
|
||||
|
||||
<p style="margin-left:6%;">The platform types <i>uid_t</i>
|
||||
and <i>gid_t</i> are often 16 or 32 bit wide. In this case
|
||||
it is possible that the ids can not be correctly restored
|
||||
from archives and get truncated.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">BSD
|
||||
February 2, 2012 BSD</p>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
381
dependencies/libarchive-3.4.2/doc/html/archive_entry_stat.3.html
vendored
Normal file
381
dependencies/libarchive-3.4.2/doc/html/archive_entry_stat.3.html
vendored
Normal file
|
@ -0,0 +1,381 @@
|
|||
<!-- Creator : groff version 1.22.3 -->
|
||||
<!-- CreationDate: Tue Feb 11 22:58:43 2020 -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="groff -Thtml, see www.gnu.org">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<meta name="Content-Style" content="text/css">
|
||||
<style type="text/css">
|
||||
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
h1 { text-align: center }
|
||||
</style>
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<p>ARCHIVE_ENTRY_STAT(3) BSD Library Functions Manual
|
||||
ARCHIVE_ENTRY_STAT(3)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>NAME</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>archive_entry_stat</b>,
|
||||
<b>archive_entry_copy_stat</b>,
|
||||
<b>archive_entry_filetype</b>,
|
||||
<b>archive_entry_set_filetype</b>,
|
||||
<b>archive_entry_mode</b>, <b>archive_entry_set_mode</b>,
|
||||
<b>archive_entry_size</b>, <b>archive_entry_size_is_set</b>,
|
||||
<b>archive_entry_set_size</b>,
|
||||
<b>archive_entry_unset_size</b>, <b>archive_entry_dev</b>,
|
||||
<b>archive_entry_set_dev</b>,
|
||||
<b>archive_entry_dev_is_set</b>,
|
||||
<b>archive_entry_devmajor</b>,
|
||||
<b>archive_entry_set_devmajor</b>,
|
||||
<b>archive_entry_devminor</b>,
|
||||
<b>archive_entry_set_devminor</b>, <b>archive_entry_ino</b>,
|
||||
<b>archive_entry_set_ino</b>,
|
||||
<b>archive_entry_ino_is_set</b>, <b>archive_entry_ino64</b>,
|
||||
<b>archive_entry_set_ino64</b>, <b>archive_entry_nlink</b>,
|
||||
<b>archive_entry_rdev</b>, <b>archive_entry_set_rdev</b>,
|
||||
<b>archive_entry_rdevmajor</b>,
|
||||
<b>archive_entry_set_rdevmajor</b>,
|
||||
<b>archive_entry_rdevminor</b>,
|
||||
<b>archive_entry_set_rdevminor</b> — accessor
|
||||
functions for manipulating archive entry descriptions</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>LIBRARY</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Streaming Archive Library
|
||||
(libarchive, -larchive)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SYNOPSIS</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>#include
|
||||
<archive_entry.h></b></p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>const struct
|
||||
stat *</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_stat</b>(<i>struct archive_entry *a</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_copy_stat</b>(<i>struct archive_entry *a</i>,
|
||||
<i>const struct stat *sb</i>);</p>
|
||||
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>mode_t</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_filetype</b>(<i>struct archive_entry *a</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_set_filetype</b>(<i>struct archive_entry *a</i>,
|
||||
<i>unsigned int type</i>);</p>
|
||||
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>mode_t</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_mode</b>(<i>struct archive_entry *a</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_set_mode</b>(<i>struct archive_entry *a</i>,
|
||||
<i>mode_t mode</i>);</p>
|
||||
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int64_t</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_size</b>(<i>struct archive_entry *a</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_size_is_set</b>(<i>struct archive_entry *a</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_set_size</b>(<i>struct archive_entry *a</i>,
|
||||
<i>int64_t size</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_unset_size</b>(<i>struct archive_entry *a</i>);</p>
|
||||
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>dev_t</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_dev</b>(<i>struct archive_entry *a</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_set_dev</b>(<i>struct archive_entry *a</i>,
|
||||
<i>dev_t dev</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_dev_is_set</b>(<i>struct archive_entry *a</i>);</p>
|
||||
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>dev_t</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_devmajor</b>(<i>struct archive_entry *a</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_set_devmajor</b>(<i>struct archive_entry *a</i>,
|
||||
<i>dev_t major</i>);</p>
|
||||
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>dev_t</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_devminor</b>(<i>struct archive_entry *a</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_set_devminor</b>(<i>struct archive_entry *a</i>,
|
||||
<i>dev_t minor</i>);</p>
|
||||
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>ino_t</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_ino</b>(<i>struct archive_entry *a</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_set_ino</b>(<i>struct archive_entry *a</i>,
|
||||
<i>unsigned long ino</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_ino_is_set</b>(<i>struct archive_entry *a</i>);</p>
|
||||
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int64_t</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_ino64</b>(<i>struct archive_entry *a</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_set_ino64</b>(<i>struct archive_entry *a</i>,
|
||||
<i>int64_t ino</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>unsigned
|
||||
int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_nlink</b>(<i>struct archive_entry *a</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_set_nlink</b>(<i>struct archive_entry *a</i>,
|
||||
<i>unsigned int count</i>);</p>
|
||||
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>dev_t</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_rdev</b>(<i>struct archive_entry *a</i>);</p>
|
||||
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>dev_t</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_rdevmajor</b>(<i>struct archive_entry *a</i>);</p>
|
||||
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>dev_t</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_rdevminor</b>(<i>struct archive_entry *a</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_set_rdev</b>(<i>struct archive_entry *a</i>,
|
||||
<i>dev_t dev</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_set_rdevmajor</b>(<i>struct archive_entry *a</i>,
|
||||
<i>dev_t major</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_set_rdevminor</b>(<i>struct archive_entry *a</i>,
|
||||
<i>dev_t minor</i>);</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>DESCRIPTION</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>Copying to and from</b>
|
||||
<i>struct stat</i> <br>
|
||||
The function <b>archive_entry_stat</b>() converts the
|
||||
various fields stored in the archive entry to the format
|
||||
used by stat(2). The return value remains valid until either
|
||||
<b>archive_entry_clear</b>() or <b>archive_entry_free</b>()
|
||||
is called. It is not affected by calls to the set accessor
|
||||
functions. It currently sets the following values in
|
||||
<i>struct stat</i>: <i>st_atime</i>, <i>st_ctime</i>,
|
||||
<i>st_dev</i>, <i>st_gid</i>, <i>st_ino</i>, <i>st_mode</i>,
|
||||
<i>st_mtime</i>, <i>st_nlink</i>, <i>st_rdev</i>,
|
||||
<i>st_size</i>, <i>st_uid</i>. In addition,
|
||||
<i>st_birthtime</i> and high-precision information for
|
||||
time-related fields will be included on platforms that
|
||||
support it.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The function
|
||||
<b>archive_entry_copy_stat</b>() copies fields from the
|
||||
platform’s <i>struct stat</i>. Fields not provided by
|
||||
<i>struct stat</i> are unchanged.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>General
|
||||
accessor functions</b> <br>
|
||||
The functions <b>archive_entry_filetype</b>() and
|
||||
<b>archive_entry_set_filetype</b>() get respectively set the
|
||||
filetype. The file type is one of the following
|
||||
constants:</p>
|
||||
|
||||
<p>AE_IFREG</p>
|
||||
|
||||
<p style="margin-left:28%; margin-top: 1em">Regular
|
||||
file</p>
|
||||
|
||||
<p>AE_IFLNK</p>
|
||||
|
||||
<p style="margin-left:28%; margin-top: 1em">Symbolic
|
||||
link</p>
|
||||
|
||||
<p>AE_IFSOCK</p>
|
||||
|
||||
<p style="margin-left:28%; margin-top: 1em">Socket</p>
|
||||
|
||||
<p>AE_IFCHR</p>
|
||||
|
||||
<p style="margin-left:28%; margin-top: 1em">Character
|
||||
device</p>
|
||||
|
||||
<p>AE_IFBLK</p>
|
||||
|
||||
<p style="margin-left:28%; margin-top: 1em">Block
|
||||
device</p>
|
||||
|
||||
<p>AE_IFDIR</p>
|
||||
|
||||
<p style="margin-left:28%; margin-top: 1em">Directory</p>
|
||||
|
||||
<p>AE_IFIFO</p>
|
||||
|
||||
<p style="margin-left:28%; margin-top: 1em">Named pipe
|
||||
(fifo)</p>
|
||||
|
||||
<p style="margin-left:6%;">Not all file types are supported
|
||||
by all platforms. The constants used by stat(2) may have
|
||||
different numeric values from the corresponding constants
|
||||
above.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The functions
|
||||
<b>archive_entry_mode</b>() and
|
||||
<b>archive_entry_set_mode</b>() get/set a combination of
|
||||
file type and permissions and provide the equivalent of
|
||||
<i>st_mode</i>. Use of <b>archive_entry_filetype</b>() and
|
||||
<b>archive_entry_perm</b>() for getting and
|
||||
<b>archive_entry_set_filetype</b>() and
|
||||
<b>archive_entry_set_perm</b>() for setting is
|
||||
recommended.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The function
|
||||
<b>archive_entry_size</b>() returns the file size, if it has
|
||||
been set, and 0 otherwise. <b>archive_entry_size</b>() can
|
||||
be used to query that status.
|
||||
<b>archive_entry_set_size</b>() and
|
||||
<b>archive_entry_unset_size</b>() set and unset the size,
|
||||
respectively.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The number of
|
||||
references (hardlinks) can be obtained by calling
|
||||
<b>archive_entry_nlinks</b>() and set with
|
||||
<b>archive_entry_set_nlinks</b>().</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>Identifying
|
||||
unique files</b> <br>
|
||||
The functions <b>archive_entry_dev</b>() and
|
||||
<b>archive_entry_ino64</b>() are used by
|
||||
archive_entry_linkify(3) to find hardlinks. The pair of
|
||||
device and inode is supposed to identify hardlinked
|
||||
files.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The device major
|
||||
and minor number can be obtained independently using
|
||||
<b>archive_entry_devmajor</b>() and
|
||||
<b>archive_entry_devminor</b>(). The device can be set
|
||||
either via <b>archive_entry_set_dev</b>() or by the
|
||||
combination of major and minor number using
|
||||
<b>archive_entry_set_devmajor</b>() and
|
||||
<b>archive_entry_set_devminor</b>().</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The inode number
|
||||
can be obtained using <b>archive_entry_ino</b>(). This is a
|
||||
legacy interface that uses the platform <i>ino_t</i>, which
|
||||
may be very small. To set the inode number,
|
||||
<b>archive_entry_set_ino64</b>() is the preferred
|
||||
interface.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>Accessor
|
||||
functions for block and character devices</b> <br>
|
||||
Block and character devices are characterised either using a
|
||||
device number or a pair of major and minor number. The
|
||||
combined device number can be obtained with
|
||||
<b>archive_device_rdev</b>() and set with
|
||||
<b>archive_device_set_rdev</b>(). The major and minor
|
||||
numbers are accessed by <b>archive_device_rdevmajor</b>(),
|
||||
<b>archive_device_rdevminor</b>()
|
||||
<b>archive_device_set_rdevmajor</b>() and
|
||||
<b>archive_device_set_rdevminor</b>().</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The process of
|
||||
splitting the combined device number into major and minor
|
||||
number and the reverse process of combing them differs
|
||||
between platforms. Some archive formats use the combined
|
||||
form, while other formats use the split form.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SEE ALSO</b></p>
|
||||
|
||||
<p style="margin-left:6%;">stat(2), archive_entry_acl(3),
|
||||
archive_entry_perms(3), archive_entry_time(3),
|
||||
libarchive(3)</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">BSD
|
||||
February 2, 2012 BSD</p>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
205
dependencies/libarchive-3.4.2/doc/html/archive_entry_time.3.html
vendored
Normal file
205
dependencies/libarchive-3.4.2/doc/html/archive_entry_time.3.html
vendored
Normal file
|
@ -0,0 +1,205 @@
|
|||
<!-- Creator : groff version 1.22.3 -->
|
||||
<!-- CreationDate: Tue Feb 11 22:58:43 2020 -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="groff -Thtml, see www.gnu.org">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<meta name="Content-Style" content="text/css">
|
||||
<style type="text/css">
|
||||
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
h1 { text-align: center }
|
||||
</style>
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<p>ARCHIVE_ENTRY_TIME(3) BSD Library Functions Manual
|
||||
ARCHIVE_ENTRY_TIME(3)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>NAME</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>archive_entry_atime</b>,
|
||||
<b>archive_entry_atime_nsec</b>,
|
||||
<b>archive_entry_atime_is_set</b>,
|
||||
<b>archive_entry_set_atime</b>,
|
||||
<b>archive_entry_unset_atime</b>,
|
||||
<b>archive_entry_birthtime</b>,
|
||||
<b>archive_entry_birthtime_nsec</b>,
|
||||
<b>archive_entry_birthtime_is_set</b>,
|
||||
<b>archive_entry_set_birthtime</b>,
|
||||
<b>archive_entry_unset_birthtime</b>,
|
||||
<b>archive_entry_ctime</b>, <b>archive_entry_ctime_nsec</b>,
|
||||
<b>archive_entry_ctime_is_set</b>,
|
||||
<b>archive_entry_set_ctime</b>,
|
||||
<b>archive_entry_unset_ctime</b>,
|
||||
<b>archive_entry_mtime</b>, <b>archive_entry_mtime_nsec</b>,
|
||||
<b>archive_entry_mtime_is_set</b>,
|
||||
<b>archive_entry_set_mtime</b>,
|
||||
<b>archive_entry_unset_mtime</b> — functions for
|
||||
manipulating times in archive entry descriptions</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>LIBRARY</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Streaming Archive Library
|
||||
(libarchive, -larchive)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SYNOPSIS</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>#include
|
||||
<archive_entry.h></b></p>
|
||||
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>time_t</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_atime</b>(<i>struct archive_entry *a</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>long</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_atime_nsec</b>(<i>struct archive_entry *a</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_atime_is_set</b>(<i>struct archive_entry *a</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_set_atime</b>(<i>struct archive_entry *a</i>,
|
||||
<i>time_t sec</i>, <i>long nanosec</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_unset_atime</b>(<i>struct archive_entry *a</i>);</p>
|
||||
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>time_t</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_birthtime</b>(<i>struct archive_entry *a</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>long</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_birthtime_nsec</b>(<i>struct archive_entry *a</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_birthtime_is_set</b>(<i>struct archive_entry *a</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_set_birthtime</b>(<i>struct archive_entry *a</i>,
|
||||
<i>time_t sec</i>, <i>long nanosec</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_unset_birthtime</b>(<i>struct archive_entry *a</i>);</p>
|
||||
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>time_t</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_ctime</b>(<i>struct archive_entry *a</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>long</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_ctime_nsec</b>(<i>struct archive_entry *a</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_ctime_is_set</b>(<i>struct archive_entry *a</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_set_ctime</b>(<i>struct archive_entry *a</i>,
|
||||
<i>time_t sec</i>, <i>long nanosec</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_unset_ctime</b>(<i>struct archive_entry *a</i>);</p>
|
||||
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>time_t</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_mtime</b>(<i>struct archive_entry *a</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>long</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_mtime_nsec</b>(<i>struct archive_entry *a</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_mtime_is_set</b>(<i>struct archive_entry *a</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_set_mtime</b>(<i>struct archive_entry *a</i>,
|
||||
<i>time_t sec</i>, <i>long nanosec</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_entry_unset_mtime</b>(<i>struct archive_entry *a</i>);</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>DESCRIPTION</b></p>
|
||||
|
||||
<p style="margin-left:6%;">These functions create and
|
||||
manipulate the time fields in an <i>archive_entry</i>.
|
||||
Supported time fields are atime (access time), birthtime
|
||||
(creation time), ctime (last time an inode property was
|
||||
changed) and mtime (modification time).</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">libarchive(3)
|
||||
provides a high-resolution interface. The timestamps are
|
||||
truncated automatically depending on the archive format (for
|
||||
archiving) or the filesystem capabilities (for
|
||||
restoring).</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">All timestamp
|
||||
fields are optional. The <b>XXX_unset</b>() functions can be
|
||||
used to mark the corresponding field as missing. The current
|
||||
state can be queried using <b>XXX_is_set</b>(). Unset time
|
||||
fields have a second and nanosecond field of 0.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SEE ALSO</b></p>
|
||||
|
||||
<p style="margin-left:6%;">archive_entry(3),
|
||||
libarchive(3)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>HISTORY</b></p>
|
||||
|
||||
<p style="margin-left:6%;">The <b>libarchive</b> library
|
||||
first appeared in FreeBSD 5.3.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>AUTHORS</b></p>
|
||||
|
||||
<p style="margin-left:6%;">The <b>libarchive</b> library
|
||||
was written by Tim Kientzle <kientzle@acm.org>.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">BSD
|
||||
February 2, 2012 BSD</p>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
233
dependencies/libarchive-3.4.2/doc/html/archive_read.3.html
vendored
Normal file
233
dependencies/libarchive-3.4.2/doc/html/archive_read.3.html
vendored
Normal file
|
@ -0,0 +1,233 @@
|
|||
<!-- Creator : groff version 1.22.3 -->
|
||||
<!-- CreationDate: Tue Feb 11 22:58:44 2020 -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="groff -Thtml, see www.gnu.org">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<meta name="Content-Style" content="text/css">
|
||||
<style type="text/css">
|
||||
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
h1 { text-align: center }
|
||||
</style>
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<p>ARCHIVE_READ(3) BSD Library Functions Manual
|
||||
ARCHIVE_READ(3)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>NAME</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>archive_read</b> —
|
||||
functions for reading streaming archives</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>LIBRARY</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Streaming Archive Library
|
||||
(libarchive, -larchive)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SYNOPSIS</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>#include
|
||||
<archive.h></b></p>
|
||||
|
||||
<p style="margin-top: 1em"><b>DESCRIPTION</b></p>
|
||||
|
||||
<p style="margin-left:6%;">These functions provide a
|
||||
complete API for reading streaming archives. The general
|
||||
process is to first create the struct archive object, set
|
||||
options, initialize the reader, iterate over the archive
|
||||
headers and associated data, then close the archive and
|
||||
release all resources.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>Create
|
||||
archive object</b> <br>
|
||||
See archive_read_new(3).</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">To read an
|
||||
archive, you must first obtain an initialized struct archive
|
||||
object from <b>archive_read_new</b>().</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>Enable
|
||||
filters and formats</b> <br>
|
||||
See archive_read_filter(3) and archive_read_format(3).</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">You can then
|
||||
modify this object for the desired operations with the
|
||||
various <b>archive_read_set_XXX</b>() and
|
||||
<b>archive_read_support_XXX</b>() functions. In particular,
|
||||
you will need to invoke appropriate
|
||||
<b>archive_read_support_XXX</b>() functions to enable the
|
||||
corresponding compression and format support. Note that
|
||||
these latter functions perform two distinct operations: they
|
||||
cause the corresponding support code to be linked into your
|
||||
program, and they enable the corresponding auto-detect code.
|
||||
Unless you have specific constraints, you will generally
|
||||
want to invoke <b>archive_read_support_filter_all</b>() and
|
||||
<b>archive_read_support_format_all</b>() to enable
|
||||
auto-detect for all formats and compression types currently
|
||||
supported by the library.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>Set
|
||||
options</b> <br>
|
||||
See archive_read_set_options(3).</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>Open
|
||||
archive</b> <br>
|
||||
See archive_read_open(3).</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">Once you have
|
||||
prepared the struct archive object, you call
|
||||
<b>archive_read_open</b>() to actually open the archive and
|
||||
prepare it for reading. There are several variants of this
|
||||
function; the most basic expects you to provide pointers to
|
||||
several functions that can provide blocks of bytes from the
|
||||
archive. There are convenience forms that allow you to
|
||||
specify a filename, file descriptor, <i>FILE *</i> object,
|
||||
or a block of memory from which to read the archive data.
|
||||
Note that the core library makes no assumptions about the
|
||||
size of the blocks read; callback functions are free to read
|
||||
whatever block size is most appropriate for the medium.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>Consume
|
||||
archive</b> <br>
|
||||
See archive_read_header(3), archive_read_data(3) and
|
||||
archive_read_extract(3).</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">Each archive
|
||||
entry consists of a header followed by a certain amount of
|
||||
data. You can obtain the next header with
|
||||
<b>archive_read_next_header</b>(), which returns a pointer
|
||||
to an struct archive_entry structure with information about
|
||||
the current archive element. If the entry is a regular file,
|
||||
then the header will be followed by the file data. You can
|
||||
use <b>archive_read_data</b>() (which works much like the
|
||||
read(2) system call) to read this data from the archive, or
|
||||
<b>archive_read_data_block</b>() which provides a slightly
|
||||
more efficient interface. You may prefer to use the
|
||||
higher-level <b>archive_read_data_skip</b>(), which reads
|
||||
and discards the data for this entry,
|
||||
<b>archive_read_data_into_fd</b>(), which copies the data to
|
||||
the provided file descriptor, or
|
||||
<b>archive_read_extract</b>(), which recreates the specified
|
||||
entry on disk and copies data from the archive. In
|
||||
particular, note that <b>archive_read_extract</b>() uses the
|
||||
struct archive_entry structure that you provide it, which
|
||||
may differ from the entry just read from the archive. In
|
||||
particular, many applications will want to override the
|
||||
pathname, file permissions, or ownership.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>Release
|
||||
resources</b> <br>
|
||||
See archive_read_free(3).</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">Once you have
|
||||
finished reading data from the archive, you should call
|
||||
<b>archive_read_close</b>() to close the archive, then call
|
||||
<b>archive_read_free</b>() to release all resources,
|
||||
including all memory allocated by the library.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>EXAMPLES</b></p>
|
||||
|
||||
<p style="margin-left:6%;">The following illustrates basic
|
||||
usage of the library. In this example, the callback
|
||||
functions are simply wrappers around the standard open(2),
|
||||
read(2), and close(2) system calls.</p>
|
||||
|
||||
<p style="margin-left:14%; margin-top: 1em">void <br>
|
||||
list_archive(const char *name) <br>
|
||||
{ <br>
|
||||
struct mydata *mydata; <br>
|
||||
struct archive *a; <br>
|
||||
struct archive_entry *entry;</p>
|
||||
|
||||
<p style="margin-left:14%; margin-top: 1em">mydata =
|
||||
malloc(sizeof(struct mydata)); <br>
|
||||
a = archive_read_new(); <br>
|
||||
mydata->name = name; <br>
|
||||
archive_read_support_filter_all(a); <br>
|
||||
archive_read_support_format_all(a); <br>
|
||||
archive_read_open(a, mydata, myopen, myread, myclose); <br>
|
||||
while (archive_read_next_header(a, &entry) ==
|
||||
ARCHIVE_OK) { <br>
|
||||
printf("%s\n",archive_entry_pathname(entry)); <br>
|
||||
archive_read_data_skip(a); <br>
|
||||
} <br>
|
||||
archive_read_free(a); <br>
|
||||
free(mydata); <br>
|
||||
}</p>
|
||||
|
||||
<p style="margin-left:14%; margin-top: 1em">la_ssize_t <br>
|
||||
myread(struct archive *a, void *client_data, const void
|
||||
**buff) <br>
|
||||
{ <br>
|
||||
struct mydata *mydata = client_data;</p>
|
||||
|
||||
<p style="margin-left:14%; margin-top: 1em">*buff =
|
||||
mydata->buff; <br>
|
||||
return (read(mydata->fd, mydata->buff, 10240)); <br>
|
||||
}</p>
|
||||
|
||||
<p style="margin-left:14%; margin-top: 1em">int <br>
|
||||
myopen(struct archive *a, void *client_data) <br>
|
||||
{ <br>
|
||||
struct mydata *mydata = client_data;</p>
|
||||
|
||||
<p style="margin-left:14%; margin-top: 1em">mydata->fd =
|
||||
open(mydata->name, O_RDONLY); <br>
|
||||
return (mydata->fd >= 0 ? ARCHIVE_OK : ARCHIVE_FATAL);
|
||||
<br>
|
||||
}</p>
|
||||
|
||||
<p style="margin-left:14%; margin-top: 1em">int <br>
|
||||
myclose(struct archive *a, void *client_data) <br>
|
||||
{ <br>
|
||||
struct mydata *mydata = client_data;</p>
|
||||
|
||||
<p style="margin-left:14%; margin-top: 1em">if
|
||||
(mydata->fd > 0) <br>
|
||||
close(mydata->fd); <br>
|
||||
return (ARCHIVE_OK); <br>
|
||||
}</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SEE ALSO</b></p>
|
||||
|
||||
<p style="margin-left:6%;">tar(1), archive_read_data(3),
|
||||
archive_read_extract(3), archive_read_filter(3),
|
||||
archive_read_format(3), archive_read_header(3),
|
||||
archive_read_new(3), archive_read_open(3),
|
||||
archive_read_set_options(3), archive_util(3), libarchive(3),
|
||||
tar(5)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>HISTORY</b></p>
|
||||
|
||||
<p style="margin-left:6%;">The <b>libarchive</b> library
|
||||
first appeared in FreeBSD 5.3.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>AUTHORS</b></p>
|
||||
|
||||
<p style="margin-left:6%;">The <b>libarchive</b> library
|
||||
was written by Tim Kientzle <kientzle@acm.org>.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>BUGS</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Many traditional archiver
|
||||
programs treat empty files as valid empty archives. For
|
||||
example, many implementations of tar(1) allow you to append
|
||||
entries to an empty file. Of course, it is impossible to
|
||||
determine the format of an empty file by inspecting the
|
||||
contents, so this library treats empty files as having a
|
||||
special ’’empty’’ format.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">BSD
|
||||
February 2, 2012 BSD</p>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
82
dependencies/libarchive-3.4.2/doc/html/archive_read_add_passphrase.3.html
vendored
Normal file
82
dependencies/libarchive-3.4.2/doc/html/archive_read_add_passphrase.3.html
vendored
Normal file
|
@ -0,0 +1,82 @@
|
|||
<!-- Creator : groff version 1.22.3 -->
|
||||
<!-- CreationDate: Tue Feb 11 22:58:44 2020 -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="groff -Thtml, see www.gnu.org">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<meta name="Content-Style" content="text/css">
|
||||
<style type="text/css">
|
||||
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
h1 { text-align: center }
|
||||
</style>
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<p>ARCHIVE_READ_ADD_PASS... BSD Library Functions Manual
|
||||
ARCHIVE_READ_ADD_PASS...</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>NAME</b></p>
|
||||
|
||||
|
||||
<p style="margin-left:6%;"><b>archive_read_add_passphrase</b>,
|
||||
<b>archive_read_set_passphrase_callback</b> —
|
||||
functions for reading encrypted archives</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>LIBRARY</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Streaming Archive Library
|
||||
(libarchive, -larchive)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SYNOPSIS</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>#include
|
||||
<archive.h></b></p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p><b>archive_read_add_passphrase</b>(<i>struct archive *</i>,
|
||||
<i>const char *passphrase</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p><b>archive_read_set_passphrase_callback</b>(<i>struct archive *</i>,
|
||||
<i>void *client_data</i>,
|
||||
<i>archive_passphrase_callback *</i>);</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>DESCRIPTION <br>
|
||||
archive_read_add_passphrase</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Register passphrases for
|
||||
reading an encryption archive. If <i>passphrase</i> is NULL
|
||||
or empty, this function will do nothing and
|
||||
<b>ARCHIVE_FAILED</b> will be returned. Otherwise,
|
||||
<b>ARCHIVE_OK</b> will be returned.</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_read_set_passphrase_callback</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Register a callback function
|
||||
that will be invoked to get a passphrase for decryption
|
||||
after trying all the passphrases registered by the
|
||||
<b>archive_read_add_passphrase</b>() function failed.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SEE ALSO</b></p>
|
||||
|
||||
<p style="margin-left:6%;">tar(1), archive_read(3),
|
||||
archive_read_set_options(3), libarchive(3)</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">BSD
|
||||
September 14, 2014 BSD</p>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
142
dependencies/libarchive-3.4.2/doc/html/archive_read_data.3.html
vendored
Normal file
142
dependencies/libarchive-3.4.2/doc/html/archive_read_data.3.html
vendored
Normal file
|
@ -0,0 +1,142 @@
|
|||
<!-- Creator : groff version 1.22.3 -->
|
||||
<!-- CreationDate: Tue Feb 11 22:58:44 2020 -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="groff -Thtml, see www.gnu.org">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<meta name="Content-Style" content="text/css">
|
||||
<style type="text/css">
|
||||
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
h1 { text-align: center }
|
||||
</style>
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<p>ARCHIVE_READ_DATA(3) BSD Library Functions Manual
|
||||
ARCHIVE_READ_DATA(3)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>NAME</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>archive_read_data</b>,
|
||||
<b>archive_read_data_block</b>,
|
||||
<b>archive_read_data_skip</b>,
|
||||
<b>archive_read_data_into_fd</b> — functions for
|
||||
reading streaming archives</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>LIBRARY</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Streaming Archive Library
|
||||
(libarchive, -larchive)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SYNOPSIS</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>#include
|
||||
<archive.h></b></p>
|
||||
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>la_ssize_t</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_read_data</b>(<i>struct archive *</i>,
|
||||
<i>void *buff</i>, <i>size_t len</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p><b>archive_read_data_block</b>(<i>struct archive *</i>,
|
||||
<i>const void **buff</i>, <i>size_t *len</i>,
|
||||
<i>off_t *offset</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_read_data_skip</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_read_data_into_fd</b>(<i>struct archive *</i>,
|
||||
<i>int fd</i>);</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>DESCRIPTION <br>
|
||||
archive_read_data</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Read data associated with the
|
||||
header just read. Internally, this is a convenience function
|
||||
that calls <b>archive_read_data_block</b>() and fills any
|
||||
gaps with nulls so that callers see a single continuous
|
||||
stream of data.</p>
|
||||
|
||||
<p><b>archive_read_data_block</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Return the next available block
|
||||
of data for this entry. Unlike <b>archive_read_data</b>(),
|
||||
the <b>archive_read_data_block</b>() function avoids copying
|
||||
data and allows you to correctly handle sparse files, as
|
||||
supported by some archive formats. The library guarantees
|
||||
that offsets will increase and that blocks will not overlap.
|
||||
Note that the blocks returned from this function can be much
|
||||
larger than the block size read from disk, due to
|
||||
compression and internal buffer optimizations.</p>
|
||||
|
||||
<p><b>archive_read_data_skip</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">A convenience function that
|
||||
repeatedly calls <b>archive_read_data_block</b>() to skip
|
||||
all of the data for this archive entry. Note that this
|
||||
function is invoked automatically by
|
||||
<b>archive_read_next_header2</b>() if the previous entry was
|
||||
not completely consumed.</p>
|
||||
|
||||
<p><b>archive_read_data_into_fd</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">A convenience function that
|
||||
repeatedly calls <b>archive_read_data_block</b>() to copy
|
||||
the entire entry to the provided file descriptor.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>RETURN VALUES</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Most functions return zero on
|
||||
success, non-zero on error. The possible return codes
|
||||
include: <b>ARCHIVE_OK</b> (the operation succeeded),
|
||||
<b>ARCHIVE_WARN</b> (the operation succeeded but a
|
||||
non-critical error was encountered), <b>ARCHIVE_EOF</b>
|
||||
(end-of-archive was encountered), <b>ARCHIVE_RETRY</b> (the
|
||||
operation failed but can be retried), and
|
||||
<b>ARCHIVE_FATAL</b> (there was a fatal error; the archive
|
||||
should be closed immediately).</p>
|
||||
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>archive_read_data</b>()
|
||||
returns a count of bytes actually read or zero at the end of
|
||||
the entry. On error, a value of <b>ARCHIVE_FATAL</b>,
|
||||
<b>ARCHIVE_WARN</b>, or <b>ARCHIVE_RETRY</b> is
|
||||
returned.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>ERRORS</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Detailed error codes and textual
|
||||
descriptions are available from the <b>archive_errno</b>()
|
||||
and <b>archive_error_string</b>() functions.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SEE ALSO</b></p>
|
||||
|
||||
<p style="margin-left:6%;">tar(1), archive_read(3),
|
||||
archive_read_extract(3), archive_read_filter(3),
|
||||
archive_read_format(3), archive_read_header(3),
|
||||
archive_read_open(3), archive_read_set_options(3),
|
||||
archive_util(3), libarchive(3), tar(5)</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">BSD
|
||||
February 2, 2012 BSD</p>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
382
dependencies/libarchive-3.4.2/doc/html/archive_read_disk.3.html
vendored
Normal file
382
dependencies/libarchive-3.4.2/doc/html/archive_read_disk.3.html
vendored
Normal file
|
@ -0,0 +1,382 @@
|
|||
<!-- Creator : groff version 1.22.3 -->
|
||||
<!-- CreationDate: Tue Feb 11 22:58:44 2020 -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="groff -Thtml, see www.gnu.org">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<meta name="Content-Style" content="text/css">
|
||||
<style type="text/css">
|
||||
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
h1 { text-align: center }
|
||||
</style>
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<p>ARCHIVE_READ_DISK(3) BSD Library Functions Manual
|
||||
ARCHIVE_READ_DISK(3)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>NAME</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>archive_read_disk_new</b>,
|
||||
<b>archive_read_disk_set_behavior</b>,
|
||||
<b>archive_read_disk_set_symlink_logical</b>,
|
||||
<b>archive_read_disk_set_symlink_physical</b>,
|
||||
<b>archive_read_disk_set_symlink_hybrid</b>,
|
||||
<b>archive_read_disk_entry_from_file</b>,
|
||||
<b>archive_read_disk_gname</b>,
|
||||
<b>archive_read_disk_uname</b>,
|
||||
<b>archive_read_disk_set_uname_lookup</b>,
|
||||
<b>archive_read_disk_set_gname_lookup</b>,
|
||||
<b>archive_read_disk_set_standard_lookup</b> —
|
||||
functions for reading objects from disk</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>LIBRARY</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Streaming Archive Library
|
||||
(libarchive, -larchive)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SYNOPSIS</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>#include
|
||||
<archive.h></b></p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>struct
|
||||
archive *</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_read_disk_new</b>(<i>void</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_read_disk_set_behavior</b>(<i>struct archive *</i>,
|
||||
<i>int</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_read_disk_set_symlink_logical</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_read_disk_set_symlink_physical</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_read_disk_set_symlink_hybrid</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>const char
|
||||
*</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_read_disk_gname</b>(<i>struct archive *</i>,
|
||||
<i>gid_t</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>const char
|
||||
*</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_read_disk_uname</b>(<i>struct archive *</i>,
|
||||
<i>uid_t</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p><b>archive_read_disk_set_gname_lookup</b>(<i>struct archive *</i>,
|
||||
<i>void *</i>,
|
||||
<i>const char *(*lookup)(void *, gid_t)</i>,
|
||||
<i>void (*cleanup)(void *)</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p><b>archive_read_disk_set_uname_lookup</b>(<i>struct archive *</i>,
|
||||
<i>void *</i>,
|
||||
<i>const char *(*lookup)(void *, uid_t)</i>,
|
||||
<i>void (*cleanup)(void *)</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_read_disk_set_standard_lookup</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p><b>archive_read_disk_entry_from_file</b>(<i>struct archive *</i>,
|
||||
<i>struct archive_entry *</i>, <i>int fd</i>,
|
||||
<i>const struct stat *</i>);</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>DESCRIPTION</b></p>
|
||||
|
||||
<p style="margin-left:6%;">These functions provide an API
|
||||
for reading information about objects on disk. In
|
||||
particular, they provide an interface for populating struct
|
||||
archive_entry objects.</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_read_disk_new</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Allocates and initializes a
|
||||
struct archive object suitable for reading object
|
||||
information from disk.</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_read_disk_set_behavior</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Configures various behavior
|
||||
options when reading entries from disk. The flags field
|
||||
consists of a bitwise OR of one or more of the following
|
||||
values:</p>
|
||||
|
||||
<p><b>ARCHIVE_READDISK_HONOR_NODUMP</b></p>
|
||||
|
||||
<p style="margin-left:27%;">Skip files and directories with
|
||||
the nodump file attribute (file flag) set. By default, the
|
||||
nodump file attribute is ignored.</p>
|
||||
|
||||
<p><b>ARCHIVE_READDISK_MAC_COPYFILE</b></p>
|
||||
|
||||
<p style="margin-left:27%;">Mac OS X specific. Read
|
||||
metadata (ACLs and extended attributes) with copyfile(3). By
|
||||
default, metadata is read using copyfile(3).</p>
|
||||
|
||||
<p><b>ARCHIVE_READDISK_NO_ACL</b></p>
|
||||
|
||||
<p style="margin-left:27%;">Do not read Access Control
|
||||
Lists. By default, ACLs are read from disk.</p>
|
||||
|
||||
<p><b>ARCHIVE_READDISK_NO_FFLAGS</b></p>
|
||||
|
||||
<p style="margin-left:27%;">Do not read file attributes
|
||||
(file flags). By default, file attributes are read from
|
||||
disk. See chattr(1) (Linux) or chflags(1) (FreeBSD, Mac OS
|
||||
X) for more information on file attributes.</p>
|
||||
|
||||
<p><b>ARCHIVE_READDISK_NO_TRAVERSE_MOUNTS</b></p>
|
||||
|
||||
<p style="margin-left:27%;">Do not traverse mount points.
|
||||
By default, mount points are traversed.</p>
|
||||
|
||||
<p><b>ARCHIVE_READDISK_NO_XATTR</b></p>
|
||||
|
||||
<p style="margin-left:27%;">Do not read extended file
|
||||
attributes (xattrs). By default, extended file attributes
|
||||
are read from disk. See xattr(7) (Linux), xattr(2) (Mac OS
|
||||
X), or getextattr(8) (FreeBSD) for more information on
|
||||
extended file attributes.</p>
|
||||
|
||||
<p><b>ARCHIVE_READDISK_RESTORE_ATIME</b></p>
|
||||
|
||||
<p style="margin-left:27%;">Restore access time of
|
||||
traversed files. By default, access time of traversed files
|
||||
is not restored.</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_read_disk_set_symlink_logical</b>(),
|
||||
<b>archive_read_disk_set_symlink_physical</b>(),
|
||||
<b>archive_read_disk_set_symlink_hybrid</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">This sets the mode used for
|
||||
handling symbolic links. The
|
||||
’’logical’’ mode follows all
|
||||
symbolic links. The ’’physical’’
|
||||
mode does not follow any symbolic links. The
|
||||
’’hybrid’’ mode currently behaves
|
||||
identically to the ’’logical’’
|
||||
mode.</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_read_disk_gname</b>(),
|
||||
<b>archive_read_disk_uname</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Returns a user or group name
|
||||
given a gid or uid value. By default, these always return a
|
||||
NULL string.</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_read_disk_set_gname_lookup</b>(),
|
||||
<b>archive_read_disk_set_uname_lookup</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">These allow you to override the
|
||||
functions used for user and group name lookups. You may also
|
||||
provide a void * pointer to a private data structure and a
|
||||
cleanup function for that data. The cleanup function will be
|
||||
invoked when the struct archive object is destroyed or when
|
||||
new lookup functions are registered.</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_read_disk_set_standard_lookup</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">This convenience function
|
||||
installs a standard set of user and group name lookup
|
||||
functions. These functions use getpwuid(3) and getgrgid(3)
|
||||
to convert ids to names, defaulting to NULL if the names
|
||||
cannot be looked up. These functions also implement a simple
|
||||
memory cache to reduce the number of calls to getpwuid(3)
|
||||
and getgrgid(3).</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_read_disk_entry_from_file</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Populates a struct
|
||||
archive_entry object with information about a particular
|
||||
file. The archive_entry object must have already been
|
||||
created with archive_entry_new(3) and at least one of the
|
||||
source path or path fields must already be set. (If both are
|
||||
set, the source path will be used.)</p>
|
||||
|
||||
<p style="margin-left:17%; margin-top: 1em">Information is
|
||||
read from disk using the path name from the struct
|
||||
archive_entry object. If a file descriptor is provided, some
|
||||
information will be obtained using that file descriptor, on
|
||||
platforms that support the appropriate system calls.</p>
|
||||
|
||||
<p style="margin-left:17%; margin-top: 1em">If a pointer to
|
||||
a struct stat is provided, information from that structure
|
||||
will be used instead of reading from the disk where
|
||||
appropriate. This can provide performance benefits in
|
||||
scenarios where struct stat information has already been
|
||||
read from the disk as a side effect of some other operation.
|
||||
(For example, directory traversal libraries often provide
|
||||
this information.)</p>
|
||||
|
||||
<p style="margin-left:17%; margin-top: 1em">Where
|
||||
necessary, user and group ids are converted to user and
|
||||
group names using the currently-registered lookup functions
|
||||
above. This affects the file ownership fields and ACL values
|
||||
in the struct archive_entry object.</p>
|
||||
|
||||
<p style="margin-left:6%;">More information about the
|
||||
<i>struct archive</i> object and the overall design of the
|
||||
library can be found in the libarchive(3) overview.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>EXAMPLES</b></p>
|
||||
|
||||
<p style="margin-left:6%;">The following illustrates basic
|
||||
usage of the library by showing how to use it to copy an
|
||||
item on disk into an archive.</p>
|
||||
|
||||
<p style="margin-left:14%; margin-top: 1em">void <br>
|
||||
file_to_archive(struct archive *a, const char *name) <br>
|
||||
{ <br>
|
||||
char buff[8192]; <br>
|
||||
size_t bytes_read; <br>
|
||||
struct archive *ard; <br>
|
||||
struct archive_entry *entry; <br>
|
||||
int fd;</p>
|
||||
|
||||
<p style="margin-left:14%; margin-top: 1em">ard =
|
||||
archive_read_disk_new(); <br>
|
||||
archive_read_disk_set_standard_lookup(ard); <br>
|
||||
entry = archive_entry_new(); <br>
|
||||
fd = open(name, O_RDONLY); <br>
|
||||
if (fd < 0) <br>
|
||||
return; <br>
|
||||
archive_entry_copy_pathname(entry, name); <br>
|
||||
archive_read_disk_entry_from_file(ard, entry, fd, NULL);
|
||||
<br>
|
||||
archive_write_header(a, entry); <br>
|
||||
while ((bytes_read = read(fd, buff, sizeof(buff))) > 0)
|
||||
<br>
|
||||
archive_write_data(a, buff, bytes_read); <br>
|
||||
archive_write_finish_entry(a); <br>
|
||||
archive_read_free(ard); <br>
|
||||
archive_entry_free(entry); <br>
|
||||
}</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>RETURN VALUES</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Most functions return
|
||||
<b>ARCHIVE_OK</b> (zero) on success, or one of several
|
||||
negative error codes for errors. Specific error codes
|
||||
include: <b>ARCHIVE_RETRY</b> for operations that might
|
||||
succeed if retried, <b>ARCHIVE_WARN</b> for unusual
|
||||
conditions that do not prevent further operations, and
|
||||
<b>ARCHIVE_FATAL</b> for serious errors that make remaining
|
||||
operations impossible.</p>
|
||||
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>archive_read_disk_new</b>()
|
||||
returns a pointer to a newly-allocated struct archive object
|
||||
or NULL if the allocation failed for any reason.</p>
|
||||
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>archive_read_disk_gname</b>()
|
||||
and <b>archive_read_disk_uname</b>() return const char *
|
||||
pointers to the textual name or NULL if the lookup failed
|
||||
for any reason. The returned pointer points to internal
|
||||
storage that may be reused on the next call to either of
|
||||
these functions; callers should copy the string if they need
|
||||
to continue accessing it.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>ERRORS</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Detailed error codes and textual
|
||||
descriptions are available from the <b>archive_errno</b>()
|
||||
and <b>archive_error_string</b>() functions.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SEE ALSO</b></p>
|
||||
|
||||
<p style="margin-left:6%;">tar(1), archive_read(3),
|
||||
archive_util(3), archive_write(3), archive_write_disk(3),
|
||||
libarchive(3)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>HISTORY</b></p>
|
||||
|
||||
<p style="margin-left:6%;">The <b>libarchive</b> library
|
||||
first appeared in FreeBSD 5.3. The
|
||||
<b>archive_read_disk</b> interface was added to
|
||||
<b>libarchive 2.6</b> and first appeared in
|
||||
FreeBSD 8.0.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>AUTHORS</b></p>
|
||||
|
||||
<p style="margin-left:6%;">The <b>libarchive</b> library
|
||||
was written by Tim Kientzle
|
||||
<kientzle@FreeBSD.org>.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>BUGS</b></p>
|
||||
|
||||
<p style="margin-left:6%;">The
|
||||
’’standard’’ user name and group
|
||||
name lookup functions are not the defaults because
|
||||
getgrgid(3) and getpwuid(3) are sometimes too large for
|
||||
particular applications. The current design allows the
|
||||
application author to use a more compact implementation when
|
||||
appropriate.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The full list of
|
||||
metadata read from disk by
|
||||
<b>archive_read_disk_entry_from_file</b>() is necessarily
|
||||
system-dependent.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The
|
||||
<b>archive_read_disk_entry_from_file</b>() function reads as
|
||||
much information as it can from disk. Some method should be
|
||||
provided to limit this so that clients who do not need ACLs,
|
||||
for instance, can avoid the extra work needed to look up
|
||||
such information.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">This API should
|
||||
provide a set of methods for walking a directory tree. That
|
||||
would make it a direct parallel of the archive_read(3) API.
|
||||
When such methods are implemented, the
|
||||
’’hybrid’’ symbolic link mode will
|
||||
make sense.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">BSD
|
||||
April 3, 2017 BSD</p>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
134
dependencies/libarchive-3.4.2/doc/html/archive_read_extract.3.html
vendored
Normal file
134
dependencies/libarchive-3.4.2/doc/html/archive_read_extract.3.html
vendored
Normal file
|
@ -0,0 +1,134 @@
|
|||
<!-- Creator : groff version 1.22.3 -->
|
||||
<!-- CreationDate: Tue Feb 11 22:58:44 2020 -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="groff -Thtml, see www.gnu.org">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<meta name="Content-Style" content="text/css">
|
||||
<style type="text/css">
|
||||
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
h1 { text-align: center }
|
||||
</style>
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<p>ARCHIVE_READ_EXTRACT(3) BSD Library Functions Manual
|
||||
ARCHIVE_READ_EXTRACT(3)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>NAME</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>archive_read_extract</b>,
|
||||
<b>archive_read_extract2</b>,
|
||||
<b>archive_read_extract_set_progress_callback</b> —
|
||||
functions for reading streaming archives</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>LIBRARY</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Streaming Archive Library
|
||||
(libarchive, -larchive)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SYNOPSIS</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>#include
|
||||
<archive.h></b></p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p><b>archive_read_extract</b>(<i>struct archive *</i>,
|
||||
<i>struct archive_entry *</i>,
|
||||
<i>int flags</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p><b>archive_read_extract2</b>(<i>struct archive *src</i>,
|
||||
<i>struct archive_entry *</i>,
|
||||
<i>struct archive *dest</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p><b>archive_read_extract_set_progress_callback</b>(<i>struct archive *</i>,
|
||||
<i>void (*func)(void *)</i>,
|
||||
<i>void *user_data</i>);</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>DESCRIPTION <br>
|
||||
archive_read_extract</b>(),
|
||||
<b>archive_read_extract_set_skip_file</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">A convenience function that
|
||||
wraps the corresponding archive_write_disk(3) interfaces.
|
||||
The first call to <b>archive_read_extract</b>() creates a
|
||||
restore object using archive_write_disk_new(3) and
|
||||
archive_write_disk_set_standard_lookup(3), then
|
||||
transparently invokes archive_write_disk_set_options(3),
|
||||
archive_write_header(3), archive_write_data(3), and
|
||||
archive_write_finish_entry(3) to create the entry on disk
|
||||
and copy data into it. The <i>flags</i> argument is passed
|
||||
unmodified to archive_write_disk_set_options(3).</p>
|
||||
|
||||
<p><b>archive_read_extract2</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">This is another version of
|
||||
<b>archive_read_extract</b>() that allows you to provide
|
||||
your own restore object. In particular, this allows you to
|
||||
override the standard lookup functions using
|
||||
archive_write_disk_set_group_lookup(3), and
|
||||
archive_write_disk_set_user_lookup(3). Note that
|
||||
<b>archive_read_extract2</b>() does not accept a
|
||||
<i>flags</i> argument; you should use
|
||||
<b>archive_write_disk_set_options</b>() to set the restore
|
||||
options yourself.</p>
|
||||
|
||||
<p><b>archive_read_extract_set_progress_callback</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Sets a pointer to a
|
||||
user-defined callback that can be used for updating progress
|
||||
displays during extraction. The progress function will be
|
||||
invoked during the extraction of large regular files. The
|
||||
progress function will be invoked with the pointer provided
|
||||
to this call. Generally, the data pointed to should include
|
||||
a reference to the archive object and the archive_entry
|
||||
object so that various statistics can be retrieved for the
|
||||
progress display.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>RETURN VALUES</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Most functions return zero on
|
||||
success, non-zero on error. The possible return codes
|
||||
include: <b>ARCHIVE_OK</b> (the operation succeeded),
|
||||
<b>ARCHIVE_WARN</b> (the operation succeeded but a
|
||||
non-critical error was encountered), <b>ARCHIVE_EOF</b>
|
||||
(end-of-archive was encountered), <b>ARCHIVE_RETRY</b> (the
|
||||
operation failed but can be retried), and
|
||||
<b>ARCHIVE_FATAL</b> (there was a fatal error; the archive
|
||||
should be closed immediately).</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>ERRORS</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Detailed error codes and textual
|
||||
descriptions are available from the <b>archive_errno</b>()
|
||||
and <b>archive_error_string</b>() functions.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SEE ALSO</b></p>
|
||||
|
||||
<p style="margin-left:6%;">tar(1), archive_read(3),
|
||||
archive_read_data(3), archive_read_filter(3),
|
||||
archive_read_format(3), archive_read_open(3),
|
||||
archive_read_set_options(3), archive_util(3), libarchive(3),
|
||||
tar(5)</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">BSD
|
||||
February 2, 2012 BSD</p>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
209
dependencies/libarchive-3.4.2/doc/html/archive_read_filter.3.html
vendored
Normal file
209
dependencies/libarchive-3.4.2/doc/html/archive_read_filter.3.html
vendored
Normal file
|
@ -0,0 +1,209 @@
|
|||
<!-- Creator : groff version 1.22.3 -->
|
||||
<!-- CreationDate: Tue Feb 11 22:58:44 2020 -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="groff -Thtml, see www.gnu.org">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<meta name="Content-Style" content="text/css">
|
||||
<style type="text/css">
|
||||
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
h1 { text-align: center }
|
||||
</style>
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<p>ARCHIVE_READ_FILTER(3) BSD Library Functions Manual
|
||||
ARCHIVE_READ_FILTER(3)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>NAME</b></p>
|
||||
|
||||
|
||||
<p style="margin-left:6%;"><b>archive_read_support_filter_all</b>,
|
||||
<b>archive_read_support_filter_bzip2</b>,
|
||||
<b>archive_read_support_filter_compress</b>,
|
||||
<b>archive_read_support_filter_gzip</b>,
|
||||
<b>archive_read_support_filter_lz4</b>,
|
||||
<b>archive_read_support_filter_lzma</b>,
|
||||
<b>archive_read_support_filter_none</b>,
|
||||
<b>archive_read_support_filter_rpm</b>,
|
||||
<b>archive_read_support_filter_uu</b>,
|
||||
<b>archive_read_support_filter_xz</b>,
|
||||
<b>archive_read_support_filter_zstd</b>,
|
||||
<b>archive_read_support_filter_program</b>,
|
||||
<b>archive_read_support_filter_program_signature</b> —
|
||||
functions for reading streaming archives</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>LIBRARY</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Streaming Archive Library
|
||||
(libarchive, -larchive)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SYNOPSIS</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>#include
|
||||
<archive.h></b></p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_read_support_filter_all</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_read_support_filter_bzip2</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_read_support_filter_compress</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_read_support_filter_grzip</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_read_support_filter_gzip</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_read_support_filter_lrzip</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_read_support_filter_lz4</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_read_support_filter_lzma</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_read_support_filter_lzop</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_read_support_filter_none</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_read_support_filter_rpm</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_read_support_filter_uu</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_read_support_filter_xz</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_read_support_filter_zstd</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p><b>archive_read_support_filter_program</b>(<i>struct archive *</i>,
|
||||
<i>const char *cmd</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p><b>archive_read_support_filter_program_signature</b>(<i>struct archive *</i>,
|
||||
<i>const char *cmd</i>,
|
||||
<i>const void *signature</i>,
|
||||
<i>size_t signature_length</i>);</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>DESCRIPTION <br>
|
||||
archive_read_support_filter_bzip2</b>(),
|
||||
<b>archive_read_support_filter_compress</b>(),
|
||||
<b>archive_read_support_filter_grzip</b>(),
|
||||
<b>archive_read_support_filter_gzip</b>(),
|
||||
<b>archive_read_support_filter_lrzip</b>(),
|
||||
<b>archive_read_support_filter_lz4</b>(),
|
||||
<b>archive_read_support_filter_lzma</b>(),
|
||||
<b>archive_read_support_filter_lzop</b>(),
|
||||
<b>archive_read_support_filter_none</b>(),
|
||||
<b>archive_read_support_filter_rpm</b>(),
|
||||
<b>archive_read_support_filter_uu</b>(),
|
||||
<b>archive_read_support_filter_xz</b>(),
|
||||
<b>archive_read_support_filter_zstd</b>(),</p>
|
||||
|
||||
<p style="margin-left:17%;">Enables auto-detection code and
|
||||
decompression support for the specified compression. These
|
||||
functions may fall back on external programs if an
|
||||
appropriate library was not available at build time.
|
||||
Decompression using an external program is usually slower
|
||||
than decompression through built-in libraries. Note that
|
||||
’’none’’ is always enabled by
|
||||
default.</p>
|
||||
|
||||
<p><b>archive_read_support_filter_all</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Enables all available
|
||||
decompression filters.</p>
|
||||
|
||||
<p><b>archive_read_support_filter_program</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Data is fed through the
|
||||
specified external program before being dearchived. Note
|
||||
that this disables automatic detection of the compression
|
||||
format, so it makes no sense to specify this in conjunction
|
||||
with any other decompression option.</p>
|
||||
|
||||
|
||||
<p><b>archive_read_support_filter_program_signature</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">This feeds data through the
|
||||
specified external program but only if the initial bytes of
|
||||
the data match the specified signature value.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>RETURN VALUES</b></p>
|
||||
|
||||
<p style="margin-left:6%;">These functions return
|
||||
<b>ARCHIVE_OK</b> if the compression is fully supported,
|
||||
<b>ARCHIVE_WARN</b> if the compression is supported only
|
||||
through an external program.</p>
|
||||
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>archive_read_support_filter_none</b>()
|
||||
always succeeds.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>ERRORS</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Detailed error codes and textual
|
||||
descriptions are available from the <b>archive_errno</b>()
|
||||
and <b>archive_error_string</b>() functions.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SEE ALSO</b></p>
|
||||
|
||||
<p style="margin-left:6%;">archive_read(3),
|
||||
archive_read_data(3), archive_read_format(3),
|
||||
archive_read_format(3), libarchive(3)</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">BSD
|
||||
August 14, 2014 BSD</p>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
227
dependencies/libarchive-3.4.2/doc/html/archive_read_format.3.html
vendored
Normal file
227
dependencies/libarchive-3.4.2/doc/html/archive_read_format.3.html
vendored
Normal file
|
@ -0,0 +1,227 @@
|
|||
<!-- Creator : groff version 1.22.3 -->
|
||||
<!-- CreationDate: Tue Feb 11 22:58:44 2020 -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="groff -Thtml, see www.gnu.org">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<meta name="Content-Style" content="text/css">
|
||||
<style type="text/css">
|
||||
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
h1 { text-align: center }
|
||||
</style>
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<p>ARCHIVE_READ_FORMAT(3) BSD Library Functions Manual
|
||||
ARCHIVE_READ_FORMAT(3)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>NAME</b></p>
|
||||
|
||||
|
||||
<p style="margin-left:6%;"><b>archive_read_support_format_7zip</b>,
|
||||
<b>archive_read_support_format_all</b>,
|
||||
<b>archive_read_support_format_ar</b>,
|
||||
<b>archive_read_support_format_by_code</b>,
|
||||
<b>archive_read_support_format_cab</b>,
|
||||
<b>archive_read_support_format_cpio</b>,
|
||||
<b>archive_read_support_format_empty</b>,
|
||||
<b>archive_read_support_format_iso9660</b>,
|
||||
<b>archive_read_support_format_lha</b>,
|
||||
<b>archive_read_support_format_mtree</b>,
|
||||
<b>archive_read_support_format_rar</b>,
|
||||
<b>archive_read_support_format_raw</b>,
|
||||
<b>archive_read_support_format_tar</b>,
|
||||
<b>archive_read_support_format_xar</b>,
|
||||
<b>archive_read_support_format_zip</b> — functions for
|
||||
reading streaming archives</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>LIBRARY</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Streaming Archive Library
|
||||
(libarchive, -larchive)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SYNOPSIS</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>#include
|
||||
<archive.h></b></p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_read_support_format_7zip</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_read_support_format_all</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_read_support_format_ar</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_read_support_format_by_code</b>(<i>struct archive *</i>,
|
||||
<i>int</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_read_support_format_cab</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_read_support_format_cpio</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_read_support_format_empty</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_read_support_format_iso9660</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_read_support_format_lha</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_read_support_format_mtree</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_read_support_format_rar</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_read_support_format_raw</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_read_support_format_tar</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_read_support_format_xar</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_read_support_format_zip</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>DESCRIPTION <br>
|
||||
archive_read_support_format_7zip</b>(),
|
||||
<b>archive_read_support_format_ar</b>(),
|
||||
<b>archive_read_support_format_cab</b>(),
|
||||
<b>archive_read_support_format_cpio</b>(),
|
||||
<b>archive_read_support_format_iso9660</b>(),
|
||||
<b>archive_read_support_format_lha</b>(),
|
||||
<b>archive_read_support_format_mtree</b>(),
|
||||
<b>archive_read_support_format_rar</b>(),
|
||||
<b>archive_read_support_format_raw</b>(),
|
||||
<b>archive_read_support_format_tar</b>(),
|
||||
<b>archive_read_support_format_xar</b>(),
|
||||
<b>archive_read_support_format_zip</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Enables support---including
|
||||
auto-detection code---for the specified archive format. For
|
||||
example, <b>archive_read_support_format_tar</b>() enables
|
||||
support for a variety of standard tar formats, old-style
|
||||
tar, ustar, pax interchange format, and many common
|
||||
variants.</p>
|
||||
|
||||
<p><b>archive_read_support_format_all</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Enables support for all
|
||||
available formats except the ’’raw’’
|
||||
format (see below).</p>
|
||||
|
||||
<p><b>archive_read_support_format_by_code</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Enables a single format
|
||||
specified by the format code. This can be useful when
|
||||
reading a single archive twice; use <b>archive_format</b>()
|
||||
after reading the first time and pass the resulting code to
|
||||
this function to selectively enable only the necessary
|
||||
format support. Note: In statically-linked executables, this
|
||||
will cause your program to include support for every format.
|
||||
If executable size is a concern, you may wish to avoid using
|
||||
this function.</p>
|
||||
|
||||
<p><b>archive_read_support_format_empty</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Enables support for treating
|
||||
empty files as empty archives. Because empty files are valid
|
||||
for several different formats, it is not possible to
|
||||
accurately determine a format for an empty file based purely
|
||||
on contents. So empty files are treated by libarchive as a
|
||||
distinct format.</p>
|
||||
|
||||
<p><b>archive_read_support_format_raw</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">The
|
||||
’’raw’’ format handler allows
|
||||
libarchive to be used to read arbitrary data. It treats any
|
||||
data stream as an archive with a single entry. The pathname
|
||||
of this entry is ’’data’’; all other
|
||||
entry fields are unset. This is not enabled by
|
||||
<b>archive_read_support_format_all</b>() in order to avoid
|
||||
erroneous handling of damaged archives.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>RETURN VALUES</b></p>
|
||||
|
||||
<p style="margin-left:6%;">These functions return
|
||||
<b>ARCHIVE_OK</b> on success, or <b>ARCHIVE_FATAL</b>.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>ERRORS</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Detailed error codes and textual
|
||||
descriptions are available from the <b>archive_errno</b>()
|
||||
and <b>archive_error_string</b>() functions.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SEE ALSO</b></p>
|
||||
|
||||
<p style="margin-left:6%;">tar(1), archive_read_data(3),
|
||||
archive_read_filter(3), archive_read_set_options(3),
|
||||
archive_util(3), libarchive(3), tar(5)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>BUGS</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Many traditional archiver
|
||||
programs treat empty files as valid empty archives. For
|
||||
example, many implementations of tar(1) allow you to append
|
||||
entries to an empty file. Of course, it is impossible to
|
||||
determine the format of an empty file by inspecting the
|
||||
contents, so this library treats empty files as having a
|
||||
special ’’empty’’ format.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">Using the
|
||||
’’raw’’ handler together with any
|
||||
other handler will often work but can produce surprising
|
||||
results.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">BSD
|
||||
February 2, 2012 BSD</p>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
107
dependencies/libarchive-3.4.2/doc/html/archive_read_free.3.html
vendored
Normal file
107
dependencies/libarchive-3.4.2/doc/html/archive_read_free.3.html
vendored
Normal file
|
@ -0,0 +1,107 @@
|
|||
<!-- Creator : groff version 1.22.3 -->
|
||||
<!-- CreationDate: Tue Feb 11 22:58:44 2020 -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="groff -Thtml, see www.gnu.org">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<meta name="Content-Style" content="text/css">
|
||||
<style type="text/css">
|
||||
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
h1 { text-align: center }
|
||||
</style>
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<p>ARCHIVE_READ_FREE(3) BSD Library Functions Manual
|
||||
ARCHIVE_READ_FREE(3)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>NAME</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>archive_read_close</b>,
|
||||
<b>archive_read_finish</b>, <b>archive_read_free</b> —
|
||||
functions for reading streaming archives</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>LIBRARY</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Streaming Archive Library
|
||||
(libarchive, -larchive)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SYNOPSIS</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>#include
|
||||
<archive.h></b></p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_read_close</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_read_finish</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_read_free</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>DESCRIPTION <br>
|
||||
archive_read_close</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Complete the archive and invoke
|
||||
the close callback.</p>
|
||||
|
||||
<p><b>archive_read_finish</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">This is a deprecated synonym
|
||||
for <b>archive_read_free</b>(). The new name was introduced
|
||||
with libarchive 3.0. Applications that need to compile with
|
||||
either libarchive 2 or libarchive 3 should continue to use
|
||||
the <b>archive_read_finish</b>() name. Both names will be
|
||||
supported until libarchive 4.0 is released, which is not
|
||||
expected to occur earlier than 2013.</p>
|
||||
|
||||
<p><b>archive_read_free</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Invokes
|
||||
<b>archive_read_close</b>() if it was not invoked manually,
|
||||
then release all resources. Note: In libarchive 1.x, this
|
||||
function was declared to return <i>void</i>, which made it
|
||||
impossible to detect certain errors when
|
||||
<b>archive_read_close</b>() was invoked implicitly from this
|
||||
function. The declaration is corrected beginning with
|
||||
libarchive 2.0.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>RETURN VALUES</b></p>
|
||||
|
||||
<p style="margin-left:6%;">These functions return
|
||||
<b>ARCHIVE_OK</b> on success, or <b>ARCHIVE_FATAL</b>.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>ERRORS</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Detailed error codes and textual
|
||||
descriptions are available from the <b>archive_errno</b>()
|
||||
and <b>archive_error_string</b>() functions.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SEE ALSO</b></p>
|
||||
|
||||
<p style="margin-left:6%;">archive_read_data(3),
|
||||
archive_read_filter(3), archive_read_format(3),
|
||||
archive_read_new(3), archive_read_open(3),
|
||||
archive_read_set_options(3), archive_util(3),
|
||||
libarchive(3)</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">BSD
|
||||
February 2, 2012 BSD</p>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
98
dependencies/libarchive-3.4.2/doc/html/archive_read_header.3.html
vendored
Normal file
98
dependencies/libarchive-3.4.2/doc/html/archive_read_header.3.html
vendored
Normal file
|
@ -0,0 +1,98 @@
|
|||
<!-- Creator : groff version 1.22.3 -->
|
||||
<!-- CreationDate: Tue Feb 11 22:58:44 2020 -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="groff -Thtml, see www.gnu.org">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<meta name="Content-Style" content="text/css">
|
||||
<style type="text/css">
|
||||
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
h1 { text-align: center }
|
||||
</style>
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<p>ARCHIVE_READ_HEADER(3) BSD Library Functions Manual
|
||||
ARCHIVE_READ_HEADER(3)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>NAME</b></p>
|
||||
|
||||
|
||||
<p style="margin-left:6%;"><b>archive_read_next_header</b>,
|
||||
<b>archive_read_next_header2</b> — functions for
|
||||
reading streaming archives</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>LIBRARY</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Streaming Archive Library
|
||||
(libarchive, -larchive)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SYNOPSIS</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>#include
|
||||
<archive.h></b></p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_read_next_header</b>(<i>struct archive *</i>,
|
||||
<i>struct archive_entry **</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_read_next_header2</b>(<i>struct archive *</i>,
|
||||
<i>struct archive_entry *</i>);</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>DESCRIPTION <br>
|
||||
archive_read_next_header</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Read the header for the next
|
||||
entry and return a pointer to a struct archive_entry. This
|
||||
is a convenience wrapper around
|
||||
<b>archive_read_next_header2</b>() that reuses an internal
|
||||
struct archive_entry object for each request.</p>
|
||||
|
||||
<p><b>archive_read_next_header2</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Read the header for the next
|
||||
entry and populate the provided struct archive_entry.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>RETURN VALUES</b></p>
|
||||
|
||||
<p style="margin-left:6%;">These functions return
|
||||
<b>ARCHIVE_OK</b> (the operation succeeded),
|
||||
<b>ARCHIVE_WARN</b> (the operation succeeded but a
|
||||
non-critical error was encountered), <b>ARCHIVE_EOF</b>
|
||||
(end-of-archive was encountered), <b>ARCHIVE_RETRY</b> (the
|
||||
operation failed but can be retried), and
|
||||
<b>ARCHIVE_FATAL</b> (there was a fatal error; the archive
|
||||
should be closed immediately).</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>ERRORS</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Detailed error codes and textual
|
||||
descriptions are available from the <b>archive_errno</b>()
|
||||
and <b>archive_error_string</b>() functions.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SEE ALSO</b></p>
|
||||
|
||||
<p style="margin-left:6%;">tar(1), archive_read(3),
|
||||
archive_read_data(3), archive_read_extract(3),
|
||||
archive_read_filter(3), archive_read_format(3),
|
||||
archive_read_open(3), archive_read_set_options(3),
|
||||
archive_util(3), libarchive(3), tar(5)</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">BSD
|
||||
February 2, 2012 BSD</p>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
68
dependencies/libarchive-3.4.2/doc/html/archive_read_new.3.html
vendored
Normal file
68
dependencies/libarchive-3.4.2/doc/html/archive_read_new.3.html
vendored
Normal file
|
@ -0,0 +1,68 @@
|
|||
<!-- Creator : groff version 1.22.3 -->
|
||||
<!-- CreationDate: Tue Feb 11 22:58:44 2020 -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="groff -Thtml, see www.gnu.org">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<meta name="Content-Style" content="text/css">
|
||||
<style type="text/css">
|
||||
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
h1 { text-align: center }
|
||||
</style>
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<p>ARCHIVE_READ_NEW(3) BSD Library Functions Manual
|
||||
ARCHIVE_READ_NEW(3)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>NAME</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>archive_read_new</b> —
|
||||
functions for reading streaming archives</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>LIBRARY</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Streaming Archive Library
|
||||
(libarchive, -larchive)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SYNOPSIS</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>#include
|
||||
<archive.h></b></p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>struct
|
||||
archive *</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_read_new</b>(<i>void</i>);</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>DESCRIPTION</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Allocates and initializes a
|
||||
struct archive object suitable for reading from an archive.
|
||||
NULL is returned on error.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">A complete
|
||||
description of the struct archive object can be found in the
|
||||
overview manual page for libarchive(3).</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SEE ALSO</b></p>
|
||||
|
||||
<p style="margin-left:6%;">tar(1), archive_read_data(3),
|
||||
archive_read_filter(3), archive_read_format(3),
|
||||
archive_read_set_options(3), archive_util(3), libarchive(3),
|
||||
tar(5)</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">BSD
|
||||
February 2, 2012 BSD</p>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
240
dependencies/libarchive-3.4.2/doc/html/archive_read_open.3.html
vendored
Normal file
240
dependencies/libarchive-3.4.2/doc/html/archive_read_open.3.html
vendored
Normal file
|
@ -0,0 +1,240 @@
|
|||
<!-- Creator : groff version 1.22.3 -->
|
||||
<!-- CreationDate: Tue Feb 11 22:58:44 2020 -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="groff -Thtml, see www.gnu.org">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<meta name="Content-Style" content="text/css">
|
||||
<style type="text/css">
|
||||
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
h1 { text-align: center }
|
||||
</style>
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<p>ARCHIVE_READ_OPEN(3) BSD Library Functions Manual
|
||||
ARCHIVE_READ_OPEN(3)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>NAME</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>archive_read_open</b>,
|
||||
<b>archive_read_open2</b>, <b>archive_read_open_fd</b>,
|
||||
<b>archive_read_open_FILE</b>,
|
||||
<b>archive_read_open_filename</b>,
|
||||
<b>archive_read_open_memory</b> — functions for
|
||||
reading streaming archives</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>LIBRARY</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Streaming Archive Library
|
||||
(libarchive, -larchive)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SYNOPSIS</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>#include
|
||||
<archive.h></b></p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p><b>archive_read_open</b>(<i>struct archive *</i>,
|
||||
<i>void *client_data</i>,
|
||||
<i>archive_open_callback *</i>,
|
||||
<i>archive_read_callback *</i>,
|
||||
<i>archive_close_callback *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p><b>archive_read_open2</b>(<i>struct archive *</i>,
|
||||
<i>void *client_data</i>,
|
||||
<i>archive_open_callback *</i>,
|
||||
<i>archive_read_callback *</i>,
|
||||
<i>archive_skip_callback *</i>,
|
||||
<i>archive_close_callback *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_read_open_FILE</b>(<i>struct archive *</i>,
|
||||
<i>FILE *file</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_read_open_fd</b>(<i>struct archive *</i>,
|
||||
<i>int fd</i>, <i>size_t block_size</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p><b>archive_read_open_filename</b>(<i>struct archive *</i>,
|
||||
<i>const char *filename</i>,
|
||||
<i>size_t block_size</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_read_open_memory</b>(<i>struct archive *</i>,
|
||||
<i>const void *buff</i>,
|
||||
<i>size_t size</i>);</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>DESCRIPTION <br>
|
||||
archive_read_open</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">The same as
|
||||
<b>archive_read_open2</b>(), except that the skip callback
|
||||
is assumed to be NULL.</p>
|
||||
|
||||
<p><b>archive_read_open2</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Freeze the settings, open the
|
||||
archive, and prepare for reading entries. This is the most
|
||||
generic version of this call, which accepts four callback
|
||||
functions. Most clients will want to use
|
||||
<b>archive_read_open_filename</b>(),
|
||||
<b>archive_read_open_FILE</b>(),
|
||||
<b>archive_read_open_fd</b>(), or
|
||||
<b>archive_read_open_memory</b>() instead. The library
|
||||
invokes the client-provided functions to obtain raw bytes
|
||||
from the archive.</p>
|
||||
|
||||
<p><b>archive_read_open_FILE</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Like
|
||||
<b>archive_read_open</b>(), except that it accepts a <i>FILE
|
||||
*</i> pointer. This function should not be used with tape
|
||||
drives or other devices that require strict I/O
|
||||
blocking.</p>
|
||||
|
||||
<p><b>archive_read_open_fd</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Like
|
||||
<b>archive_read_open</b>(), except that it accepts a file
|
||||
descriptor and block size rather than a set of function
|
||||
pointers. Note that the file descriptor will not be
|
||||
automatically closed at end-of-archive. This function is
|
||||
safe for use with tape drives or other blocked devices.</p>
|
||||
|
||||
<p><b>archive_read_open_file</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">This is a deprecated synonym
|
||||
for <b>archive_read_open_filename</b>().</p>
|
||||
|
||||
<p><b>archive_read_open_filename</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Like
|
||||
<b>archive_read_open</b>(), except that it accepts a simple
|
||||
filename and a block size. A NULL filename represents
|
||||
standard input. This function is safe for use with tape
|
||||
drives or other blocked devices.</p>
|
||||
|
||||
<p><b>archive_read_open_memory</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Like
|
||||
<b>archive_read_open</b>(), except that it accepts a pointer
|
||||
and size of a block of memory containing the archive
|
||||
data.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">A complete
|
||||
description of the struct archive and struct archive_entry
|
||||
objects can be found in the overview manual page for
|
||||
libarchive(3).</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>CLIENT CALLBACKS</b></p>
|
||||
|
||||
<p style="margin-left:6%;">The callback functions must
|
||||
match the following prototypes:</p>
|
||||
|
||||
<p style="margin-left:14%; margin-top: 1em"><i>typedef
|
||||
la_ssize_t</i></p>
|
||||
|
||||
|
||||
<p><b>archive_read_callback</b>(<i>struct archive *</i>,
|
||||
<i>void *client_data</i>,
|
||||
<i>const void **buffer</i>)</p>
|
||||
|
||||
<p style="margin-left:14%; margin-top: 1em"><i>typedef
|
||||
la_int64_t</i></p>
|
||||
|
||||
|
||||
<p><b>archive_skip_callback</b>(<i>struct archive *</i>,
|
||||
<i>void *client_data</i>,
|
||||
<i>off_t request</i>)</p>
|
||||
|
||||
<p style="margin-left:14%; margin-top: 1em"><i>typedef
|
||||
int</i> <b>archive_open_callback</b>(<i>struct archive
|
||||
*</i>, <i>void *client_data</i>)</p>
|
||||
|
||||
<p style="margin-left:14%; margin-top: 1em"><i>typedef
|
||||
int</i> <b>archive_close_callback</b>(<i>struct archive
|
||||
*</i>, <i>void *client_data</i>)</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The open
|
||||
callback is invoked by <b>archive_open</b>(). It should
|
||||
return <b>ARCHIVE_OK</b> if the underlying file or data
|
||||
source is successfully opened. If the open fails, it should
|
||||
call <b>archive_set_error</b>() to register an error code
|
||||
and message and return <b>ARCHIVE_FATAL</b>.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The read
|
||||
callback is invoked whenever the library requires raw bytes
|
||||
from the archive. The read callback should read data into a
|
||||
buffer, set the const void **buffer argument to point to the
|
||||
available data, and return a count of the number of bytes
|
||||
available. The library will invoke the read callback again
|
||||
only after it has consumed this data. The library imposes no
|
||||
constraints on the size of the data blocks returned. On
|
||||
end-of-file, the read callback should return zero. On error,
|
||||
the read callback should invoke <b>archive_set_error</b>()
|
||||
to register an error code and message and return -1.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The skip
|
||||
callback is invoked when the library wants to ignore a block
|
||||
of data. The return value is the number of bytes actually
|
||||
skipped, which may differ from the request. If the callback
|
||||
cannot skip data, it should return zero. If the skip
|
||||
callback is not provided (the function pointer is NULL ),
|
||||
the library will invoke the read function instead and simply
|
||||
discard the result. A skip callback can provide significant
|
||||
performance gains when reading uncompressed archives from
|
||||
slow disk drives or other media that can skip quickly.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The close
|
||||
callback is invoked by archive_close when the archive
|
||||
processing is complete. The callback should return
|
||||
<b>ARCHIVE_OK</b> on success. On failure, the callback
|
||||
should invoke <b>archive_set_error</b>() to register an
|
||||
error code and message and return <b>ARCHIVE_FATAL</b>.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>RETURN VALUES</b></p>
|
||||
|
||||
<p style="margin-left:6%;">These functions return
|
||||
<b>ARCHIVE_OK</b> on success, or <b>ARCHIVE_FATAL</b>.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>ERRORS</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Detailed error codes and textual
|
||||
descriptions are available from the <b>archive_errno</b>()
|
||||
and <b>archive_error_string</b>() functions.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SEE ALSO</b></p>
|
||||
|
||||
<p style="margin-left:6%;">tar(1), archive_read(3),
|
||||
archive_read_data(3), archive_read_filter(3),
|
||||
archive_read_format(3), archive_read_set_options(3),
|
||||
archive_util(3), libarchive(3), tar(5)</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">BSD
|
||||
February 2, 2012 BSD</p>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
252
dependencies/libarchive-3.4.2/doc/html/archive_read_set_options.3.html
vendored
Normal file
252
dependencies/libarchive-3.4.2/doc/html/archive_read_set_options.3.html
vendored
Normal file
|
@ -0,0 +1,252 @@
|
|||
<!-- Creator : groff version 1.22.3 -->
|
||||
<!-- CreationDate: Tue Feb 11 22:58:44 2020 -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="groff -Thtml, see www.gnu.org">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<meta name="Content-Style" content="text/css">
|
||||
<style type="text/css">
|
||||
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
h1 { text-align: center }
|
||||
</style>
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<p>ARCHIVE_READ_OPTIONS(3) BSD Library Functions Manual
|
||||
ARCHIVE_READ_OPTIONS(3)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>NAME</b></p>
|
||||
|
||||
|
||||
<p style="margin-left:6%;"><b>archive_read_set_filter_option</b>,
|
||||
<b>archive_read_set_format_option</b>,
|
||||
<b>archive_read_set_option</b>,
|
||||
<b>archive_read_set_options</b> — functions
|
||||
controlling options for reading archives</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>LIBRARY</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Streaming Archive Library
|
||||
(libarchive, -larchive)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SYNOPSIS</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><i>int</i></p>
|
||||
|
||||
|
||||
<p><b>archive_read_set_filter_option</b>(<i>struct archive *</i>,
|
||||
<i>const char *module</i>,
|
||||
<i>const char *option</i>,
|
||||
<i>const char *value</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p><b>archive_read_set_format_option</b>(<i>struct archive *</i>,
|
||||
<i>const char *module</i>,
|
||||
<i>const char *option</i>,
|
||||
<i>const char *value</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p><b>archive_read_set_option</b>(<i>struct archive *</i>,
|
||||
<i>const char *module</i>,
|
||||
<i>const char *option</i>,
|
||||
<i>const char *value</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p><b>archive_read_set_options</b>(<i>struct archive *</i>,
|
||||
<i>const char *options</i>);</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>DESCRIPTION</b></p>
|
||||
|
||||
<p style="margin-left:6%;">These functions provide a way
|
||||
for libarchive clients to configure specific read
|
||||
modules.</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_read_set_filter_option</b>(),
|
||||
<b>archive_read_set_format_option</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Specifies an option that will
|
||||
be passed to currently-registered filters (including
|
||||
decompression filters) or format readers.</p>
|
||||
|
||||
<p style="margin-left:17%; margin-top: 1em">If
|
||||
<i>option</i> and <i>value</i> are both NULL, these
|
||||
functions will do nothing and <b>ARCHIVE_OK</b> will be
|
||||
returned. If <i>option</i> is NULL but <i>value</i> is not,
|
||||
these functions will do nothing and <b>ARCHIVE_FAILED</b>
|
||||
will be returned.</p>
|
||||
|
||||
<p style="margin-left:17%; margin-top: 1em">If
|
||||
<i>module</i> is not NULL, <i>option</i> and <i>value</i>
|
||||
will be provided to the filter or reader named
|
||||
<i>module</i>. The return value will be that of the module.
|
||||
If there is no such module, <b>ARCHIVE_FAILED</b> will be
|
||||
returned.</p>
|
||||
|
||||
<p style="margin-left:17%; margin-top: 1em">If
|
||||
<i>module</i> is NULL, <i>option</i> and <i>value</i> will
|
||||
be provided to every registered module. If any module
|
||||
returns <b>ARCHIVE_FATAL</b>, this value will be returned
|
||||
immediately. Otherwise, <b>ARCHIVE_OK</b> will be returned
|
||||
if any module accepts the option, and <b>ARCHIVE_FAILED</b>
|
||||
in all other cases.</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_read_set_option</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Calls
|
||||
<b>archive_read_set_format_option</b>(), then
|
||||
<b>archive_read_set_filter_option</b>(). If either function
|
||||
returns <b>ARCHIVE_FATAL</b>, <b>ARCHIVE_FATAL</b> will be
|
||||
returned immediately. Otherwise, greater of the two values
|
||||
will be returned.</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_read_set_options</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;"><i>options</i> is a
|
||||
comma-separated list of options. If <i>options</i> is NULL
|
||||
or empty, <b>ARCHIVE_OK</b> will be returned
|
||||
immediately.</p>
|
||||
|
||||
<p style="margin-left:17%; margin-top: 1em">Calls
|
||||
<b>archive_read_set_option</b>() with each option in turn.
|
||||
If any <b>archive_read_set_option</b>() call returns
|
||||
<b>ARCHIVE_FATAL</b>, <b>ARCHIVE_FATAL</b> will be returned
|
||||
immediately.</p>
|
||||
|
||||
<p style="margin-left:17%; margin-top: 1em">Individual
|
||||
options have one of the following forms:</p>
|
||||
|
||||
<p><i>option=value</i></p>
|
||||
|
||||
<p style="margin-left:27%;">The option/value pair will be
|
||||
provided to every module. Modules that do not accept an
|
||||
option with this name will ignore it.</p>
|
||||
|
||||
<p><i>option</i></p>
|
||||
|
||||
<p style="margin-left:27%; margin-top: 1em">The option will
|
||||
be provided to every module with a value of
|
||||
’’1’’.</p>
|
||||
|
||||
<p><i>!option</i></p>
|
||||
|
||||
<p style="margin-left:27%;">The option will be provided to
|
||||
every module with a NULL value.</p>
|
||||
|
||||
<p><i>module:option=value</i>, <i>module:option</i>,
|
||||
<i>module:!option</i></p>
|
||||
|
||||
<p style="margin-left:27%;">As above, but the corresponding
|
||||
option and value will be provided only to modules whose name
|
||||
matches <i>module</i>.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>OPTIONS</b> <br>
|
||||
Format cab <b><br>
|
||||
hdrcharset</b></p>
|
||||
|
||||
<p style="margin-left:27%;">The value is used as a
|
||||
character set name that will be used when translating file
|
||||
names.</p>
|
||||
|
||||
<p>Format cpio <b><br>
|
||||
hdrcharset</b></p>
|
||||
|
||||
<p style="margin-left:27%;">The value is used as a
|
||||
character set name that will be used when translating file
|
||||
names.</p>
|
||||
|
||||
<p>Format iso9660 <b><br>
|
||||
joliet</b></p>
|
||||
|
||||
<p style="margin-left:27%; margin-top: 1em">Support Joliet
|
||||
extensions. Defaults to enabled, use <b>!joliet</b> to
|
||||
disable.</p>
|
||||
|
||||
<p><b>rockridge</b></p>
|
||||
|
||||
<p style="margin-left:27%;">Support RockRidge extensions.
|
||||
Defaults to enabled, use <b>!rockridge</b> to disable.</p>
|
||||
|
||||
<p>Format lha <b><br>
|
||||
hdrcharset</b></p>
|
||||
|
||||
<p style="margin-left:27%;">The value is used as a
|
||||
character set name that will be used when translating file
|
||||
names.</p>
|
||||
|
||||
<p>Format mtree <b><br>
|
||||
checkfs</b></p>
|
||||
|
||||
<p style="margin-left:27%;">Allow reading information
|
||||
missing from the mtree from the file system. Disabled by
|
||||
default.</p>
|
||||
|
||||
<p>Format rar <b><br>
|
||||
hdrcharset</b></p>
|
||||
|
||||
<p style="margin-left:27%;">The value is used as a
|
||||
character set name that will be used when translating file
|
||||
names.</p>
|
||||
|
||||
<p>Format tar <b><br>
|
||||
compat-2x</b></p>
|
||||
|
||||
<p style="margin-left:27%;">Libarchive 2.x incorrectly
|
||||
encoded Unicode filenames on some platforms. This option
|
||||
mimics the libarchive 2.x filename handling so that such
|
||||
archives can be read correctly.</p>
|
||||
|
||||
<p><b>hdrcharset</b></p>
|
||||
|
||||
<p style="margin-left:27%;">The value is used as a
|
||||
character set name that will be used when translating file
|
||||
names.</p>
|
||||
|
||||
<p><b>mac-ext</b></p>
|
||||
|
||||
<p style="margin-left:27%;">Support Mac OS metadata
|
||||
extension that records data in special files beginning with
|
||||
a period and underscore. Defaults to enabled on Mac OS,
|
||||
disabled on other platforms. Use <b>!mac-ext</b> to
|
||||
disable.</p>
|
||||
|
||||
<p><b>read_concatenated_archives</b></p>
|
||||
|
||||
<p style="margin-left:27%;">Ignore zeroed blocks in the
|
||||
archive, which occurs when multiple tar archives have been
|
||||
concatenated together. Without this option, only the
|
||||
contents of the first concatenated archive would be
|
||||
read.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>ERRORS</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Detailed error codes and textual
|
||||
descriptions are available from the <b>archive_errno</b>()
|
||||
and <b>archive_error_string</b>() functions.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SEE ALSO</b></p>
|
||||
|
||||
<p style="margin-left:6%;">tar(1), archive_read(3),
|
||||
archive_write_set_options(3), libarchive(3)</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">BSD
|
||||
January 31, 2020 BSD</p>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
293
dependencies/libarchive-3.4.2/doc/html/archive_util.3.html
vendored
Normal file
293
dependencies/libarchive-3.4.2/doc/html/archive_util.3.html
vendored
Normal file
|
@ -0,0 +1,293 @@
|
|||
<!-- Creator : groff version 1.22.3 -->
|
||||
<!-- CreationDate: Tue Feb 11 22:58:45 2020 -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="groff -Thtml, see www.gnu.org">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<meta name="Content-Style" content="text/css">
|
||||
<style type="text/css">
|
||||
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
h1 { text-align: center }
|
||||
</style>
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<p>ARCHIVE_UTIL(3) BSD Library Functions Manual
|
||||
ARCHIVE_UTIL(3)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>NAME</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>archive_clear_error</b>,
|
||||
<b>archive_compression</b>, <b>archive_compression_name</b>,
|
||||
<b>archive_copy_error</b>, <b>archive_errno</b>,
|
||||
<b>archive_error_string</b>, <b>archive_file_count</b>,
|
||||
<b>archive_filter_code</b>, <b>archive_filter_count</b>,
|
||||
<b>archive_filter_name</b>, <b>archive_format</b>,
|
||||
<b>archive_format_name</b>, <b>archive_position</b>,
|
||||
<b>archive_set_error</b> — libarchive utility
|
||||
functions</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>LIBRARY</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Streaming Archive Library
|
||||
(libarchive, -larchive)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SYNOPSIS</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>#include
|
||||
<archive.h></b></p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_clear_error</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_compression</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>const char
|
||||
*</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_compression_name</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_copy_error</b>(<i>struct archive *</i>,
|
||||
<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_errno</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>const char
|
||||
*</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_error_string</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_file_count</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_filter_code</b>(<i>struct archive *</i>,
|
||||
<i>int</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_filter_count</b>(<i>struct archive *</i>,
|
||||
<i>int</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>const char
|
||||
*</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_filter_name</b>(<i>struct archive *</i>,
|
||||
<i>int</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_format</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>const char
|
||||
*</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_format_name</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int64_t</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_position</b>(<i>struct archive *</i>,
|
||||
<i>int</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>void</i></p>
|
||||
|
||||
|
||||
<p><b>archive_set_error</b>(<i>struct archive *</i>,
|
||||
<i>int error_code</i>,
|
||||
<i>const char *fmt</i>, <i>...</i>);</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>DESCRIPTION</b></p>
|
||||
|
||||
<p style="margin-left:6%;">These functions provide access
|
||||
to various information about the struct archive object used
|
||||
in the libarchive(3) library.</p>
|
||||
|
||||
<p><b>archive_clear_error</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Clears any error information
|
||||
left over from a previous call. Not generally used in client
|
||||
code.</p>
|
||||
|
||||
<p><b>archive_compression</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Synonym for
|
||||
<b>archive_filter_code</b>(<i>a</i>, <i>0</i>).</p>
|
||||
|
||||
<p><b>archive_compression_name</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Synonym for
|
||||
<b>archive_filter_name</b>(<i>a</i>, <i>0</i>).</p>
|
||||
|
||||
<p><b>archive_copy_error</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Copies error information from
|
||||
one archive to another.</p>
|
||||
|
||||
<p><b>archive_errno</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Returns a numeric error code
|
||||
(see errno(2)) indicating the reason for the most recent
|
||||
error return. Note that this can not be reliably used to
|
||||
detect whether an error has occurred. It should be used only
|
||||
after another libarchive function has returned an error
|
||||
status.</p>
|
||||
|
||||
<p><b>archive_error_string</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Returns a textual error message
|
||||
suitable for display. The error message here is usually more
|
||||
specific than that obtained from passing the result of
|
||||
<b>archive_errno</b>() to strerror(3).</p>
|
||||
|
||||
<p><b>archive_file_count</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Returns a count of the number
|
||||
of files processed by this archive object. The count is
|
||||
incremented by calls to archive_write_header(3) or
|
||||
archive_read_next_header(3).</p>
|
||||
|
||||
<p><b>archive_filter_code</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Returns a numeric code
|
||||
identifying the indicated filter. See
|
||||
<b>archive_filter_count</b>() for details of the
|
||||
numbering.</p>
|
||||
|
||||
<p><b>archive_filter_count</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Returns the number of filters
|
||||
in the current pipeline. For read archive handles, these
|
||||
filters are added automatically by the automatic format
|
||||
detection. For write archive handles, these filters are
|
||||
added by calls to the various
|
||||
<b>archive_write_add_filter_XXX</b>() functions. Filters in
|
||||
the resulting pipeline are numbered so that filter 0 is the
|
||||
filter closest to the format handler. As a convenience,
|
||||
functions that expect a filter number will accept -1 as a
|
||||
synonym for the highest-numbered filter.</p>
|
||||
|
||||
<p style="margin-left:17%; margin-top: 1em">For example,
|
||||
when reading a uuencoded gzipped tar archive, there are
|
||||
three filters: filter 0 is the gunzip filter, filter 1 is
|
||||
the uudecode filter, and filter 2 is the pseudo-filter that
|
||||
wraps the archive read functions. In this case, requesting
|
||||
<b>archive_position</b>(<i>a</i>, <i>-1</i>) would be a
|
||||
synonym for <b>archive_position</b>(<i>a</i>, <i>2</i>)
|
||||
which would return the number of bytes currently read from
|
||||
the archive, while <b>archive_position</b>(<i>a</i>,
|
||||
<i>1</i>) would return the number of bytes after uudecoding,
|
||||
and <b>archive_position</b>(<i>a</i>, <i>0</i>) would return
|
||||
the number of bytes after decompression.</p>
|
||||
|
||||
<p><b>archive_filter_name</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Returns a textual name
|
||||
identifying the indicated filter. See
|
||||
<b>archive_filter_count</b>() for details of the
|
||||
numbering.</p>
|
||||
|
||||
<p><b>archive_format</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Returns a numeric code
|
||||
indicating the format of the current archive entry. This
|
||||
value is set by a successful call to
|
||||
<b>archive_read_next_header</b>(). Note that it is common
|
||||
for this value to change from entry to entry. For example, a
|
||||
tar archive might have several entries that utilize GNU tar
|
||||
extensions and several entries that do not. These entries
|
||||
will have different format codes.</p>
|
||||
|
||||
<p><b>archive_format_name</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">A textual description of the
|
||||
format of the current entry.</p>
|
||||
|
||||
<p><b>archive_position</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Returns the number of bytes
|
||||
read from or written to the indicated filter. In particular,
|
||||
<b>archive_position</b>(<i>a</i>, <i>0</i>) returns the
|
||||
number of bytes read or written by the format handler, while
|
||||
<b>archive_position</b>(<i>a</i>, <i>-1</i>) returns the
|
||||
number of bytes read or written to the archive. See
|
||||
<b>archive_filter_count</b>() for details of the numbering
|
||||
here.</p>
|
||||
|
||||
<p><b>archive_set_error</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Sets the numeric error code and
|
||||
error description that will be returned by
|
||||
<b>archive_errno</b>() and <b>archive_error_string</b>().
|
||||
This function should be used within I/O callbacks to set
|
||||
system-specific error codes and error descriptions. This
|
||||
function accepts a printf-like format string and arguments.
|
||||
However, you should be careful to use only the following
|
||||
printf format specifiers: ’’%c’’,
|
||||
’’%d’’,
|
||||
’’%jd’’,
|
||||
’’%jo’’,
|
||||
’’%ju’’,
|
||||
’’%jx’’,
|
||||
’’%ld’’,
|
||||
’’%lo’’,
|
||||
’’%lu’’,
|
||||
’’%lx’’,
|
||||
’’%o’’,
|
||||
’’%u’’,
|
||||
’’%s’’,
|
||||
’’%x’’,
|
||||
’’%%’’. Field-width specifiers and
|
||||
other printf features are not uniformly supported and should
|
||||
not be used.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SEE ALSO</b></p>
|
||||
|
||||
<p style="margin-left:6%;">archive_read(3),
|
||||
archive_write(3), libarchive(3), printf(3)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>HISTORY</b></p>
|
||||
|
||||
<p style="margin-left:6%;">The <b>libarchive</b> library
|
||||
first appeared in FreeBSD 5.3.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>AUTHORS</b></p>
|
||||
|
||||
<p style="margin-left:6%;">The <b>libarchive</b> library
|
||||
was written by Tim Kientzle <kientzle@acm.org>.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">BSD
|
||||
February 2, 2012 BSD</p>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
290
dependencies/libarchive-3.4.2/doc/html/archive_write.3.html
vendored
Normal file
290
dependencies/libarchive-3.4.2/doc/html/archive_write.3.html
vendored
Normal file
|
@ -0,0 +1,290 @@
|
|||
<!-- Creator : groff version 1.22.3 -->
|
||||
<!-- CreationDate: Tue Feb 11 22:58:45 2020 -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="groff -Thtml, see www.gnu.org">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<meta name="Content-Style" content="text/css">
|
||||
<style type="text/css">
|
||||
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
h1 { text-align: center }
|
||||
</style>
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<p>ARCHIVE_WRITE(3) BSD Library Functions Manual
|
||||
ARCHIVE_WRITE(3)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>NAME</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>archive_write</b> —
|
||||
functions for creating archives</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>LIBRARY</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Streaming Archive Library
|
||||
(libarchive, -larchive)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SYNOPSIS</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>#include
|
||||
<archive.h></b></p>
|
||||
|
||||
<p style="margin-top: 1em"><b>DESCRIPTION</b></p>
|
||||
|
||||
<p style="margin-left:6%;">These functions provide a
|
||||
complete API for creating streaming archive files. The
|
||||
general process is to first create the struct archive
|
||||
object, set any desired options, initialize the archive,
|
||||
append entries, then close the archive and release all
|
||||
resources.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>Create
|
||||
archive object</b> <br>
|
||||
See archive_write_new(3).</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">To write an
|
||||
archive, you must first obtain an initialized struct archive
|
||||
object from <b>archive_write_new</b>().</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>Enable
|
||||
filters and formats, configure block size and padding</b>
|
||||
<br>
|
||||
See archive_write_filter(3), archive_write_format(3) and
|
||||
archive_write_blocksize(3).</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">You can then
|
||||
modify this object for the desired operations with the
|
||||
various <b>archive_write_set_XXX</b>() functions. In
|
||||
particular, you will need to invoke appropriate
|
||||
<b>archive_write_add_XXX</b>() and
|
||||
<b>archive_write_set_XXX</b>() functions to enable the
|
||||
corresponding compression and format support.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>Set
|
||||
options</b> <br>
|
||||
See archive_write_set_options(3).</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>Open
|
||||
archive</b> <br>
|
||||
See archive_write_open(3).</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">Once you have
|
||||
prepared the struct archive object, you call
|
||||
<b>archive_write_open</b>() to actually open the archive and
|
||||
prepare it for writing. There are several variants of this
|
||||
function; the most basic expects you to provide pointers to
|
||||
several functions that can provide blocks of bytes from the
|
||||
archive. There are convenience forms that allow you to
|
||||
specify a filename, file descriptor, <i>FILE *</i> object,
|
||||
or a block of memory from which to write the archive
|
||||
data.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>Produce
|
||||
archive</b> <br>
|
||||
See archive_write_header(3) and archive_write_data(3).</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">Individual
|
||||
archive entries are written in a three-step process: You
|
||||
first initialize a struct archive_entry structure with
|
||||
information about the new entry. At a minimum, you should
|
||||
set the pathname of the entry and provide a <i>struct
|
||||
stat</i> with a valid <i>st_mode</i> field, which specifies
|
||||
the type of object and <i>st_size</i> field, which specifies
|
||||
the size of the data portion of the object.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>Release
|
||||
resources</b> <br>
|
||||
See archive_write_free(3).</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">After all
|
||||
entries have been written, use the
|
||||
<b>archive_write_free</b>() function to release all
|
||||
resources.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>EXAMPLES</b></p>
|
||||
|
||||
<p style="margin-left:6%;">The following sketch illustrates
|
||||
basic usage of the library. In this example, the callback
|
||||
functions are simply wrappers around the standard open(2),
|
||||
write(2), and close(2) system calls.</p>
|
||||
|
||||
<p style="margin-left:14%; margin-top: 1em">#ifdef
|
||||
__linux__</p>
|
||||
|
||||
<table width="100%" border="0" rules="none" frame="void"
|
||||
cellspacing="0" cellpadding="0">
|
||||
<tr valign="top" align="left">
|
||||
<td width="14%"></td>
|
||||
<td width="10%">
|
||||
|
||||
|
||||
<p>#define</p></td>
|
||||
<td width="11%">
|
||||
|
||||
|
||||
<p>_FILE_OFFSET_BITS 64</p></td>
|
||||
<td width="65%">
|
||||
</td></tr>
|
||||
</table>
|
||||
|
||||
<p style="margin-left:14%;">#endif <br>
|
||||
#include <sys/stat.h> <br>
|
||||
#include <archive.h> <br>
|
||||
#include <archive_entry.h> <br>
|
||||
#include <fcntl.h> <br>
|
||||
#include <stdlib.h> <br>
|
||||
#include <unistd.h></p>
|
||||
|
||||
<p style="margin-left:14%; margin-top: 1em">struct mydata {
|
||||
<br>
|
||||
const char *name; <br>
|
||||
int fd; <br>
|
||||
};</p>
|
||||
|
||||
<p style="margin-left:14%; margin-top: 1em">int <br>
|
||||
myopen(struct archive *a, void *client_data) <br>
|
||||
{ <br>
|
||||
struct mydata *mydata = client_data;</p>
|
||||
|
||||
<p style="margin-left:14%; margin-top: 1em">mydata->fd =
|
||||
open(mydata->name, O_WRONLY | O_CREAT, 0644); <br>
|
||||
if (mydata->fd >= 0) <br>
|
||||
return (ARCHIVE_OK); <br>
|
||||
else <br>
|
||||
return (ARCHIVE_FATAL); <br>
|
||||
}</p>
|
||||
|
||||
<p style="margin-left:14%; margin-top: 1em">la_ssize_t <br>
|
||||
mywrite(struct archive *a, void *client_data, const void
|
||||
*buff, size_t n) <br>
|
||||
{ <br>
|
||||
struct mydata *mydata = client_data;</p>
|
||||
|
||||
<p style="margin-left:14%; margin-top: 1em">return
|
||||
(write(mydata->fd, buff, n)); <br>
|
||||
}</p>
|
||||
|
||||
<p style="margin-left:14%; margin-top: 1em">int <br>
|
||||
myclose(struct archive *a, void *client_data) <br>
|
||||
{ <br>
|
||||
struct mydata *mydata = client_data;</p>
|
||||
|
||||
<p style="margin-left:14%; margin-top: 1em">if
|
||||
(mydata->fd > 0) <br>
|
||||
close(mydata->fd); <br>
|
||||
return (0); <br>
|
||||
}</p>
|
||||
|
||||
<p style="margin-left:14%; margin-top: 1em">void <br>
|
||||
write_archive(const char *outname, const char **filename)
|
||||
<br>
|
||||
{ <br>
|
||||
struct mydata *mydata = malloc(sizeof(struct mydata)); <br>
|
||||
struct archive *a; <br>
|
||||
struct archive_entry *entry; <br>
|
||||
struct stat st; <br>
|
||||
char buff[8192]; <br>
|
||||
int len; <br>
|
||||
int fd;</p>
|
||||
|
||||
<p style="margin-left:14%; margin-top: 1em">a =
|
||||
archive_write_new(); <br>
|
||||
mydata->name = outname; <br>
|
||||
/* Set archive format and filter according to output file
|
||||
extension. <br>
|
||||
* If it fails, set default format. Platform depended
|
||||
function. <br>
|
||||
* See supported formats in
|
||||
archive_write_set_format_filter_by_ext.c */ <br>
|
||||
if (archive_write_set_format_filter_by_ext(a, outname) !=
|
||||
ARCHIVE_OK) { <br>
|
||||
archive_write_add_filter_gzip(a); <br>
|
||||
archive_write_set_format_ustar(a); <br>
|
||||
} <br>
|
||||
archive_write_open(a, mydata, myopen, mywrite, myclose);
|
||||
<br>
|
||||
while (*filename) { <br>
|
||||
stat(*filename, &st); <br>
|
||||
entry = archive_entry_new(); <br>
|
||||
archive_entry_copy_stat(entry, &st); <br>
|
||||
archive_entry_set_pathname(entry, *filename); <br>
|
||||
archive_write_header(a, entry); <br>
|
||||
if ((fd = open(*filename, O_RDONLY)) != -1) { <br>
|
||||
len = read(fd, buff, sizeof(buff)); <br>
|
||||
while (len > 0) { <br>
|
||||
archive_write_data(a, buff, len); <br>
|
||||
len = read(fd, buff, sizeof(buff)); <br>
|
||||
} <br>
|
||||
close(fd); <br>
|
||||
} <br>
|
||||
archive_entry_free(entry); <br>
|
||||
filename++; <br>
|
||||
} <br>
|
||||
archive_write_free(a); <br>
|
||||
}</p>
|
||||
|
||||
<p style="margin-left:14%; margin-top: 1em">int main(int
|
||||
argc, const char **argv) <br>
|
||||
{ <br>
|
||||
const char *outname; <br>
|
||||
argv++; <br>
|
||||
outname = *argv++; <br>
|
||||
write_archive(outname, argv); <br>
|
||||
return 0; <br>
|
||||
}</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SEE ALSO</b></p>
|
||||
|
||||
<p style="margin-left:6%;">tar(1),
|
||||
archive_write_set_options(3), libarchive(3), cpio(5),
|
||||
mtree(5), tar(5)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>HISTORY</b></p>
|
||||
|
||||
<p style="margin-left:6%;">The <b>libarchive</b> library
|
||||
first appeared in FreeBSD 5.3.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>AUTHORS</b></p>
|
||||
|
||||
<p style="margin-left:6%;">The <b>libarchive</b> library
|
||||
was written by Tim Kientzle <kientzle@acm.org>.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>BUGS</b></p>
|
||||
|
||||
<p style="margin-left:6%;">There are many peculiar bugs in
|
||||
historic tar implementations that may cause certain programs
|
||||
to reject archives written by this library. For example,
|
||||
several historic implementations calculated header checksums
|
||||
incorrectly and will thus reject valid archives; GNU tar
|
||||
does not fully support pax interchange format; some old tar
|
||||
implementations required specific field terminations.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The default pax
|
||||
interchange format eliminates most of the historic tar
|
||||
limitations and provides a generic key/value attribute
|
||||
facility for vendor-defined extensions. One oversight in
|
||||
POSIX is the failure to provide a standard attribute for
|
||||
large device numbers. This library uses
|
||||
’’SCHILY.devminor’’ and
|
||||
’’SCHILY.devmajor’’ for device
|
||||
numbers that exceed the range supported by the
|
||||
backwards-compatible ustar header. These keys are compatible
|
||||
with Joerg Schilling’s <b>star</b> archiver. Other
|
||||
implementations may not recognize these keys and will thus
|
||||
be unable to correctly restore device nodes with large
|
||||
device numbers from archives created by this library.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">BSD
|
||||
February 2, 2012 BSD</p>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
141
dependencies/libarchive-3.4.2/doc/html/archive_write_blocksize.3.html
vendored
Normal file
141
dependencies/libarchive-3.4.2/doc/html/archive_write_blocksize.3.html
vendored
Normal file
|
@ -0,0 +1,141 @@
|
|||
<!-- Creator : groff version 1.22.3 -->
|
||||
<!-- CreationDate: Tue Feb 11 22:58:45 2020 -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="groff -Thtml, see www.gnu.org">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<meta name="Content-Style" content="text/css">
|
||||
<style type="text/css">
|
||||
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
h1 { text-align: center }
|
||||
</style>
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<p>ARCHIVE_WRITE_BLOCKSI... BSD Library Functions Manual
|
||||
ARCHIVE_WRITE_BLOCKSI...</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>NAME</b></p>
|
||||
|
||||
|
||||
<p style="margin-left:6%;"><b>archive_write_get_bytes_per_block</b>,
|
||||
<b>archive_write_set_bytes_per_block</b>,
|
||||
<b>archive_write_get_bytes_in_last_block</b>,
|
||||
<b>archive_write_set_bytes_in_last_block</b> —
|
||||
functions for creating archives</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>LIBRARY</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Streaming Archive Library
|
||||
(libarchive, -larchive)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SYNOPSIS</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>#include
|
||||
<archive.h></b></p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_get_bytes_per_block</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_set_bytes_per_block</b>(<i>struct archive *</i>,
|
||||
<i>int bytes_per_block</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_get_bytes_in_last_block</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_set_bytes_in_last_block</b>(<i>struct archive *</i>,
|
||||
<i>int</i>);</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>DESCRIPTION <br>
|
||||
archive_write_set_bytes_per_block</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Sets the block size used for
|
||||
writing the archive data. Every call to the write callback
|
||||
function, except possibly the last one, will use this value
|
||||
for the length. The default is to use a block size of 10240
|
||||
bytes. Note that a block size of zero will suppress internal
|
||||
blocking and cause writes to be sent directly to the write
|
||||
callback as they occur.</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_write_get_bytes_per_block</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Retrieve the block size to be
|
||||
used for writing. A value of -1 here indicates that the
|
||||
library should use default values. A value of zero indicates
|
||||
that internal blocking is suppressed.</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_write_set_bytes_in_last_block</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Sets the block size used for
|
||||
writing the last block. If this value is zero, the last
|
||||
block will be padded to the same size as the other blocks.
|
||||
Otherwise, the final block will be padded to a multiple of
|
||||
this size. In particular, setting it to 1 will cause the
|
||||
final block to not be padded. For compressed output, any
|
||||
padding generated by this option is applied only after the
|
||||
compression. The uncompressed data is always unpadded. The
|
||||
default is to pad the last block to the full block size
|
||||
(note that <b>archive_write_open_filename</b>() will set
|
||||
this based on the file type). Unlike the other
|
||||
’’set’’ functions, this function can
|
||||
be called after the archive is opened.</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_write_get_bytes_in_last_block</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Retrieve the currently-set
|
||||
value for last block size. A value of -1 here indicates that
|
||||
the library should use default values.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>RETURN VALUES</b></p>
|
||||
|
||||
|
||||
<p style="margin-left:6%;"><b>archive_write_set_bytes_per_block</b>()
|
||||
and <b>archive_write_set_bytes_in_last_block</b>() return
|
||||
<b>ARCHIVE_OK</b> on success, or <b>ARCHIVE_FATAL</b>.</p>
|
||||
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>archive_write_get_bytes_per_block</b>()
|
||||
and <b>archive_write_get_bytes_in_last_block</b>() return
|
||||
currently configured block size (</p>
|
||||
|
||||
<p>-1 indicates the default block size ), or
|
||||
<b>ARCHIVE_FATAL</b>.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>ERRORS</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Detailed error codes and textual
|
||||
descriptions are available from the <b>archive_errno</b>()
|
||||
and <b>archive_error_string</b>() functions.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SEE ALSO</b></p>
|
||||
|
||||
<p style="margin-left:6%;">tar(1),
|
||||
archive_write_set_options(3), libarchive(3), cpio(5),
|
||||
mtree(5), tar(5)</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">BSD
|
||||
February 2, 2012 BSD</p>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
107
dependencies/libarchive-3.4.2/doc/html/archive_write_data.3.html
vendored
Normal file
107
dependencies/libarchive-3.4.2/doc/html/archive_write_data.3.html
vendored
Normal file
|
@ -0,0 +1,107 @@
|
|||
<!-- Creator : groff version 1.22.3 -->
|
||||
<!-- CreationDate: Tue Feb 11 22:58:45 2020 -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="groff -Thtml, see www.gnu.org">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<meta name="Content-Style" content="text/css">
|
||||
<style type="text/css">
|
||||
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
h1 { text-align: center }
|
||||
</style>
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<p>ARCHIVE_WRITE_DATA(3) BSD Library Functions Manual
|
||||
ARCHIVE_WRITE_DATA(3)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>NAME</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>archive_write_data</b>,
|
||||
<b>archive_write_data_block</b> — functions for
|
||||
creating archives</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>LIBRARY</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Streaming Archive Library
|
||||
(libarchive, -larchive)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SYNOPSIS</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>#include
|
||||
<archive.h></b></p>
|
||||
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>la_ssize_t</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_data</b>(<i>struct archive *</i>,
|
||||
<i>const void *</i>, <i>size_t</i>);</p>
|
||||
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>la_ssize_t</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_data_block</b>(<i>struct archive *</i>,
|
||||
<i>const void *</i>, <i>size_t size</i>,
|
||||
<i>int64_t offset</i>);</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>DESCRIPTION <br>
|
||||
archive_write_data</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Write data corresponding to the
|
||||
header just written.</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_write_data_block</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Write data corresponding to the
|
||||
header just written. This is like
|
||||
<b>archive_write_data</b>() except that it performs a seek
|
||||
on the file being written to the specified offset before
|
||||
writing the data. This is useful when restoring sparse files
|
||||
from archive formats that support sparse files. Returns
|
||||
number of bytes written or -1 on error. (Note: This is
|
||||
currently not supported for archive_write handles, only for
|
||||
archive_write_disk handles.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>RETURN VALUES</b></p>
|
||||
|
||||
<p style="margin-left:6%;">This function returns the number
|
||||
of bytes actually written, or a negative error code on
|
||||
error.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>ERRORS</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Detailed error codes and textual
|
||||
descriptions are available from the <b>archive_errno</b>()
|
||||
and <b>archive_error_string</b>() functions.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>BUGS</b></p>
|
||||
|
||||
<p style="margin-left:6%;">In libarchive 3.x, this function
|
||||
sometimes returns zero on success instead of returning the
|
||||
number of bytes written. Specifically, this occurs when
|
||||
writing to an <i>archive_write_disk</i> handle. Clients
|
||||
should treat any value less than zero as an error and
|
||||
consider any non-negative value as success.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SEE ALSO</b></p>
|
||||
|
||||
<p style="margin-left:6%;">tar(1),
|
||||
archive_write_finish_entry(3), archive_write_set_options(3),
|
||||
libarchive(3), cpio(5), mtree(5), tar(5)</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">BSD
|
||||
February 28, 2017 BSD</p>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
377
dependencies/libarchive-3.4.2/doc/html/archive_write_disk.3.html
vendored
Normal file
377
dependencies/libarchive-3.4.2/doc/html/archive_write_disk.3.html
vendored
Normal file
|
@ -0,0 +1,377 @@
|
|||
<!-- Creator : groff version 1.22.3 -->
|
||||
<!-- CreationDate: Tue Feb 11 22:58:45 2020 -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="groff -Thtml, see www.gnu.org">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<meta name="Content-Style" content="text/css">
|
||||
<style type="text/css">
|
||||
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
h1 { text-align: center }
|
||||
</style>
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<p>ARCHIVE_WRITE_DISK(3) BSD Library Functions Manual
|
||||
ARCHIVE_WRITE_DISK(3)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>NAME</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>archive_write_disk_new</b>,
|
||||
<b>archive_write_disk_set_options</b>,
|
||||
<b>archive_write_disk_set_skip_file</b>,
|
||||
<b>archive_write_disk_set_group_lookup</b>,
|
||||
<b>archive_write_disk_set_standard_lookup</b>,
|
||||
<b>archive_write_disk_set_user_lookup</b> — functions
|
||||
for creating objects on disk</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>LIBRARY</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Streaming Archive Library
|
||||
(libarchive, -larchive)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SYNOPSIS</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>#include
|
||||
<archive.h></b></p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>struct
|
||||
archive *</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_disk_new</b>(<i>void</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_disk_set_options</b>(<i>struct archive *</i>,
|
||||
<i>int flags</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_disk_set_skip_file</b>(<i>struct archive *</i>,
|
||||
<i>dev_t</i>, <i>ino_t</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p><b>archive_write_disk_set_group_lookup</b>(<i>struct archive *</i>,
|
||||
<i>void *</i>,
|
||||
<i>gid_t (*)(void *, const char *gname, gid_t gid)</i>,
|
||||
<i>void (*cleanup)(void *)</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_disk_set_standard_lookup</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p><b>archive_write_disk_set_user_lookup</b>(<i>struct archive *</i>,
|
||||
<i>void *</i>,
|
||||
<i>uid_t (*)(void *, const char *uname, uid_t uid)</i>,
|
||||
<i>void (*cleanup)(void *)</i>);</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>DESCRIPTION</b></p>
|
||||
|
||||
<p style="margin-left:6%;">These functions provide a
|
||||
complete API for creating objects on disk from struct
|
||||
archive_entry descriptions. They are most naturally used
|
||||
when extracting objects from an archive using the
|
||||
<b>archive_read</b>() interface. The general process is to
|
||||
read struct archive_entry objects from an archive, then
|
||||
write those objects to a struct archive object created using
|
||||
the <b>archive_write_disk</b>() family functions. This
|
||||
interface is deliberately very similar to the
|
||||
<b>archive_write</b>() interface used to write objects to a
|
||||
streaming archive.</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_write_disk_new</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Allocates and initializes a
|
||||
struct archive object suitable for writing objects to
|
||||
disk.</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_write_disk_set_skip_file</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Records the device and inode
|
||||
numbers of a file that should not be overwritten. This is
|
||||
typically used to ensure that an extraction process does not
|
||||
overwrite the archive from which objects are being read.
|
||||
This capability is technically unnecessary but can be a
|
||||
significant performance optimization in practice.</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_write_disk_set_options</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">The options field consists of a
|
||||
bitwise OR of one or more of the following values:</p>
|
||||
|
||||
<p><b>ARCHIVE_EXTRACT_ACL</b></p>
|
||||
|
||||
<p style="margin-left:27%;">Attempt to restore Access
|
||||
Control Lists. By default, extended ACLs are ignored.</p>
|
||||
|
||||
<p><b>ARCHIVE_EXTRACT_CLEAR_NOCHANGE_FFLAGS</b></p>
|
||||
|
||||
<p style="margin-left:27%;">Before removing a file system
|
||||
object prior to replacing it, clear platform-specific file
|
||||
flags which might prevent its removal.</p>
|
||||
|
||||
<p><b>ARCHIVE_EXTRACT_FFLAGS</b></p>
|
||||
|
||||
<p style="margin-left:27%;">Attempt to restore file
|
||||
attributes (file flags). By default, file attributes are
|
||||
ignored. See chattr(1) (Linux) or chflags(1) (FreeBSD, Mac
|
||||
OS X) for more information on file attributes.</p>
|
||||
|
||||
<p><b>ARCHIVE_EXTRACT_MAC_METADATA</b></p>
|
||||
|
||||
<p style="margin-left:27%;">Mac OS X specific. Restore
|
||||
metadata using copyfile(3). By default, copyfile(3) metadata
|
||||
is ignored.</p>
|
||||
|
||||
<p><b>ARCHIVE_EXTRACT_NO_OVERWRITE</b></p>
|
||||
|
||||
<p style="margin-left:27%;">Existing files on disk will not
|
||||
be overwritten. By default, existing regular files are
|
||||
truncated and overwritten; existing directories will have
|
||||
their permissions updated; other pre-existing objects are
|
||||
unlinked and recreated from scratch.</p>
|
||||
|
||||
<p><b>ARCHIVE_EXTRACT_OWNER</b></p>
|
||||
|
||||
<p style="margin-left:27%;">The user and group IDs should
|
||||
be set on the restored file. By default, the user and group
|
||||
IDs are not restored.</p>
|
||||
|
||||
<p><b>ARCHIVE_EXTRACT_PERM</b></p>
|
||||
|
||||
<p style="margin-left:27%;">Full permissions (including
|
||||
SGID, SUID, and sticky bits) should be restored exactly as
|
||||
specified, without obeying the current umask. Note that SUID
|
||||
and SGID bits can only be restored if the user and group ID
|
||||
of the object on disk are correct. If
|
||||
<b>ARCHIVE_EXTRACT_OWNER</b> is not specified, then SUID and
|
||||
SGID bits will only be restored if the default user and
|
||||
group IDs of newly-created objects on disk happen to match
|
||||
those specified in the archive entry. By default, only basic
|
||||
permissions are restored, and umask is obeyed.</p>
|
||||
|
||||
<p><b>ARCHIVE_EXTRACT_SAFE_WRITES</b></p>
|
||||
|
||||
<p style="margin-left:27%;">Extract files atomically, by
|
||||
first creating a unique temporary file and then renaming it
|
||||
to its required destination name. This avoids a race where
|
||||
an application might see a partial file (or no file) during
|
||||
extraction.</p>
|
||||
|
||||
<p><b>ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS</b></p>
|
||||
|
||||
<p style="margin-left:27%;">Refuse to extract an absolute
|
||||
path. The default is to not refuse such paths.</p>
|
||||
|
||||
<p><b>ARCHIVE_EXTRACT_SECURE_NODOTDOT</b></p>
|
||||
|
||||
<p style="margin-left:27%;">Refuse to extract a path that
|
||||
contains a <i>..</i> element anywhere within it. The default
|
||||
is to not refuse such paths. Note that paths ending in
|
||||
<i>..</i> always cause an error, regardless of this
|
||||
flag.</p>
|
||||
|
||||
<p><b>ARCHIVE_EXTRACT_SECURE_SYMLINKS</b></p>
|
||||
|
||||
<p style="margin-left:27%;">Refuse to extract any object
|
||||
whose final location would be altered by a symlink on disk.
|
||||
This is intended to help guard against a variety of mischief
|
||||
caused by archives that (deliberately or otherwise) extract
|
||||
files outside of the current directory. The default is not
|
||||
to perform this check. If</p>
|
||||
|
||||
<p><b>ARCHIVE_EXTRACT_SPARSE</b></p>
|
||||
|
||||
<p style="margin-left:27%;">Scan data for blocks of NUL
|
||||
bytes and try to recreate them with holes. This results in
|
||||
sparse files, independent of whether the archive format
|
||||
supports or uses them. <b>ARCHIVE_EXTRACT_UNLINK</b> is
|
||||
specified together with this option, the library will remove
|
||||
any intermediate symlinks it finds and return an error only
|
||||
if such symlink could not be removed.</p>
|
||||
|
||||
<p><b>ARCHIVE_EXTRACT_TIME</b></p>
|
||||
|
||||
<p style="margin-left:27%;">The timestamps (mtime, ctime,
|
||||
and atime) should be restored. By default, they are ignored.
|
||||
Note that restoring of atime is not currently supported.</p>
|
||||
|
||||
<p><b>ARCHIVE_EXTRACT_UNLINK</b></p>
|
||||
|
||||
<p style="margin-left:27%;">Existing files on disk will be
|
||||
unlinked before any attempt to create them. In some cases,
|
||||
this can prove to be a significant performance improvement.
|
||||
By default, existing files are truncated and rewritten, but
|
||||
the file is not recreated. In particular, the default
|
||||
behavior does not break existing hard links.</p>
|
||||
|
||||
<p><b>ARCHIVE_EXTRACT_XATTR</b></p>
|
||||
|
||||
<p style="margin-left:27%;">Attempt to restore extended
|
||||
file attributes. By default, they are ignored. See xattr(7)
|
||||
(Linux), xattr(2) (Mac OS X), or getextattr(8) (FreeBSD) for
|
||||
more information on extended file attributes.</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_write_disk_set_group_lookup</b>(),
|
||||
<b>archive_write_disk_set_user_lookup</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">The struct archive_entry
|
||||
objects contain both names and ids that can be used to
|
||||
identify users and groups. These names and ids describe the
|
||||
ownership of the file itself and also appear in ACL lists.
|
||||
By default, the library uses the ids and ignores the names,
|
||||
but this can be overridden by registering user and group
|
||||
lookup functions. To register, you must provide a lookup
|
||||
function which accepts both a name and id and returns a
|
||||
suitable id. You may also provide a void * pointer to a
|
||||
private data structure and a cleanup function for that data.
|
||||
The cleanup function will be invoked when the struct archive
|
||||
object is destroyed.</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_write_disk_set_standard_lookup</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">This convenience function
|
||||
installs a standard set of user and group lookup functions.
|
||||
These functions use getpwnam(3) and getgrnam(3) to convert
|
||||
names to ids, defaulting to the ids if the names cannot be
|
||||
looked up. These functions also implement a simple memory
|
||||
cache to reduce the number of calls to getpwnam(3) and
|
||||
getgrnam(3).</p>
|
||||
|
||||
<p style="margin-left:6%;">More information about the
|
||||
<i>struct archive</i> object and the overall design of the
|
||||
library can be found in the libarchive(3) overview. Many of
|
||||
these functions are also documented under
|
||||
archive_write(3).</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>RETURN VALUES</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Most functions return
|
||||
<b>ARCHIVE_OK</b> (zero) on success, or one of several
|
||||
non-zero error codes for errors. Specific error codes
|
||||
include: <b>ARCHIVE_RETRY</b> for operations that might
|
||||
succeed if retried, <b>ARCHIVE_WARN</b> for unusual
|
||||
conditions that do not prevent further operations, and
|
||||
<b>ARCHIVE_FATAL</b> for serious errors that make remaining
|
||||
operations impossible.</p>
|
||||
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>archive_write_disk_new</b>()
|
||||
returns a pointer to a newly-allocated struct archive
|
||||
object.</p>
|
||||
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>archive_write_data</b>()
|
||||
returns a count of the number of bytes actually written, or
|
||||
-1 on error.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>ERRORS</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Detailed error codes and textual
|
||||
descriptions are available from the <b>archive_errno</b>()
|
||||
and <b>archive_error_string</b>() functions.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SEE ALSO</b></p>
|
||||
|
||||
<p style="margin-left:6%;">tar(1), archive_read(3),
|
||||
archive_write(3), libarchive(3)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>HISTORY</b></p>
|
||||
|
||||
<p style="margin-left:6%;">The <b>libarchive</b> library
|
||||
first appeared in FreeBSD 5.3. The
|
||||
<b>archive_write_disk</b> interface was added to
|
||||
<b>libarchive 2.0</b> and first appeared in
|
||||
FreeBSD 6.3.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>AUTHORS</b></p>
|
||||
|
||||
<p style="margin-left:6%;">The <b>libarchive</b> library
|
||||
was written by Tim Kientzle <kientzle@acm.org>.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>BUGS</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Directories are actually
|
||||
extracted in two distinct phases. Directories are created
|
||||
during <b>archive_write_header</b>(), but final permissions
|
||||
are not set until <b>archive_write_close</b>(). This
|
||||
separation is necessary to correctly handle borderline cases
|
||||
such as a non-writable directory containing files, but can
|
||||
cause unexpected results. In particular, directory
|
||||
permissions are not fully restored until the archive is
|
||||
closed. If you use chdir(2) to change the current directory
|
||||
between calls to <b>archive_read_extract</b>() or before
|
||||
calling <b>archive_read_close</b>(), you may confuse the
|
||||
permission-setting logic with the result that directory
|
||||
permissions are restored incorrectly.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The library
|
||||
attempts to create objects with filenames longer than
|
||||
<b>PATH_MAX</b> by creating prefixes of the full path and
|
||||
changing the current directory. Currently, this logic is
|
||||
limited in scope; the fixup pass does not work correctly for
|
||||
such objects and the symlink security check option disables
|
||||
the support for very long pathnames.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">Restoring the
|
||||
path <i>aa/../bb</i> does create each intermediate
|
||||
directory. In particular, the directory <i>aa</i> is created
|
||||
as well as the final object <i>bb</i>. In theory, this can
|
||||
be exploited to create an entire directory hierarchy with a
|
||||
single request. Of course, this does not work if the
|
||||
<b>ARCHIVE_EXTRACT_NODOTDOT</b> option is specified.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">Implicit
|
||||
directories are always created obeying the current umask.
|
||||
Explicit objects are created obeying the current umask
|
||||
unless <b>ARCHIVE_EXTRACT_PERM</b> is specified, in which
|
||||
case they current umask is ignored.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">SGID and SUID
|
||||
bits are restored only if the correct user and group could
|
||||
be set. If <b>ARCHIVE_EXTRACT_OWNER</b> is not specified,
|
||||
then no attempt is made to set the ownership. In this case,
|
||||
SGID and SUID bits are restored only if the user and group
|
||||
of the final object happen to match those specified in the
|
||||
entry.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The
|
||||
’’standard’’ user-id and group-id
|
||||
lookup functions are not the defaults because getgrnam(3)
|
||||
and getpwnam(3) are sometimes too large for particular
|
||||
applications. The current design allows the application
|
||||
author to use a more compact implementation when
|
||||
appropriate.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">There should be
|
||||
a corresponding <b>archive_read_disk</b> interface that
|
||||
walks a directory hierarchy and returns archive entry
|
||||
objects.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">BSD
|
||||
January 19, 2020 BSD</p>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
193
dependencies/libarchive-3.4.2/doc/html/archive_write_filter.3.html
vendored
Normal file
193
dependencies/libarchive-3.4.2/doc/html/archive_write_filter.3.html
vendored
Normal file
|
@ -0,0 +1,193 @@
|
|||
<!-- Creator : groff version 1.22.3 -->
|
||||
<!-- CreationDate: Tue Feb 11 22:58:45 2020 -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="groff -Thtml, see www.gnu.org">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<meta name="Content-Style" content="text/css">
|
||||
<style type="text/css">
|
||||
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
h1 { text-align: center }
|
||||
</style>
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<p>ARCHIVE_WRITE_FILTER(3) BSD Library Functions Manual
|
||||
ARCHIVE_WRITE_FILTER(3)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>NAME</b></p>
|
||||
|
||||
|
||||
<p style="margin-left:6%;"><b>archive_write_add_filter_b64encode</b>,
|
||||
<b>archive_write_add_filter_by_name</b>,
|
||||
<b>archive_write_add_filter_bzip2</b>,
|
||||
<b>archive_write_add_filter_compress</b>,
|
||||
<b>archive_write_add_filter_grzip</b>,
|
||||
<b>archive_write_add_filter_gzip</b>,
|
||||
<b>archive_write_add_filter_lrzip</b>,
|
||||
<b>archive_write_add_filter_lz4</b>,
|
||||
<b>archive_write_add_filter_lzip</b>,
|
||||
<b>archive_write_add_filter_lzma</b>,
|
||||
<b>archive_write_add_filter_lzop</b>,
|
||||
<b>archive_write_add_filter_none</b>,
|
||||
<b>archive_write_add_filter_program</b>,
|
||||
<b>archive_write_add_filter_uuencode</b>,
|
||||
<b>archive_write_add_filter_xz</b>,
|
||||
<b>archive_write_add_filter_zstd</b> — functions
|
||||
enabling output filters</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>LIBRARY</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Streaming Archive Library
|
||||
(libarchive, -larchive)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SYNOPSIS</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>#include
|
||||
<archive.h></b></p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_add_filter_b64encode</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_add_filter_bzip2</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_add_filter_compress</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_add_filter_grzip</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_add_filter_gzip</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_add_filter_lrzip</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_add_filter_lz4</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_add_filter_lzip</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_add_filter_lzma</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_add_filter_lzop</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_add_filter_none</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_add_filter_program</b>(<i>struct archive *</i>,
|
||||
<i>const char * cmd</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_add_filter_uuencode</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_add_filter_xz</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_add_filter_zstd</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>DESCRIPTION <br>
|
||||
archive_write_add_filter_bzip2</b>(),
|
||||
<b>archive_write_add_filter_compress</b>(),
|
||||
<b>archive_write_add_filter_grzip</b>(),
|
||||
<b>archive_write_add_filter_gzip</b>(),
|
||||
<b>archive_write_add_filter_lrzip</b>(),
|
||||
<b>archive_write_add_filter_lz4</b>(),
|
||||
<b>archive_write_add_filter_lzip</b>(),
|
||||
<b>archive_write_add_filter_lzma</b>(),
|
||||
<b>archive_write_add_filter_lzop</b>(),
|
||||
<b>archive_write_add_filter_xz</b>(),
|
||||
<b>archive_write_add_filter_zstd</b>(),</p>
|
||||
|
||||
<p style="margin-left:17%;">The resulting archive will be
|
||||
compressed as specified. Note that the compressed output is
|
||||
always properly blocked.</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_write_add_filter_b64encode</b>(),
|
||||
<b>archive_write_add_filter_uuencode</b>(),</p>
|
||||
|
||||
<p style="margin-left:17%;">The output will be encoded as
|
||||
specified. The encoded output is always properly
|
||||
blocked.</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_write_add_filter_none</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">This is never necessary. It is
|
||||
provided only for backwards compatibility.</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_write_add_filter_program</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">The archive will be fed into
|
||||
the specified compression program. The output of that
|
||||
program is blocked and written to the client write
|
||||
callbacks.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>RETURN VALUES</b></p>
|
||||
|
||||
<p style="margin-left:6%;">These functions return
|
||||
<b>ARCHIVE_OK</b> on success, or <b>ARCHIVE_FATAL</b>.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>ERRORS</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Detailed error codes and textual
|
||||
descriptions are available from the <b>archive_errno</b>()
|
||||
and <b>archive_error_string</b>() functions.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SEE ALSO</b></p>
|
||||
|
||||
<p style="margin-left:6%;">tar(1), archive_write(3),
|
||||
archive_write_format(3), archive_write_set_options(3),
|
||||
libarchive(3), cpio(5), mtree(5), tar(5)</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">BSD
|
||||
August 14, 2014 BSD</p>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
85
dependencies/libarchive-3.4.2/doc/html/archive_write_finish_entry.3.html
vendored
Normal file
85
dependencies/libarchive-3.4.2/doc/html/archive_write_finish_entry.3.html
vendored
Normal file
|
@ -0,0 +1,85 @@
|
|||
<!-- Creator : groff version 1.22.3 -->
|
||||
<!-- CreationDate: Tue Feb 11 22:58:45 2020 -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="groff -Thtml, see www.gnu.org">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<meta name="Content-Style" content="text/css">
|
||||
<style type="text/css">
|
||||
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
h1 { text-align: center }
|
||||
</style>
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<p>ARCHIVE_WRITE_FINISH_... BSD Library Functions Manual
|
||||
ARCHIVE_WRITE_FINISH_...</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>NAME</b></p>
|
||||
|
||||
|
||||
<p style="margin-left:6%;"><b>archive_write_finish_entry</b>
|
||||
— functions for creating archives</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>LIBRARY</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Streaming Archive Library
|
||||
(libarchive, -larchive)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SYNOPSIS</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>#include
|
||||
<archive.h></b></p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_finish_entry</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>DESCRIPTION</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Close out the entry just
|
||||
written. In particular, this writes out the final padding
|
||||
required by some formats. Ordinarily, clients never need to
|
||||
call this, as it is called automatically by
|
||||
<b>archive_write_header</b>() and
|
||||
<b>archive_write_close</b>() as needed. For
|
||||
archive_write_disk handles, this flushes pending file
|
||||
attribute changes like modification time.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>RETURN VALUES</b></p>
|
||||
|
||||
<p style="margin-left:6%;">This function returns
|
||||
<b>ARCHIVE_OK</b> on success, or one of several non-zero
|
||||
error codes for errors. Specific error codes include:
|
||||
<b>ARCHIVE_RETRY</b> for operations that might succeed if
|
||||
retried, <b>ARCHIVE_WARN</b> for unusual conditions that do
|
||||
not prevent further operations, and <b>ARCHIVE_FATAL</b> for
|
||||
serious errors that make remaining operations
|
||||
impossible.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>ERRORS</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Detailed error codes and textual
|
||||
descriptions are available from the <b>archive_errno</b>()
|
||||
and <b>archive_error_string</b>() functions.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SEE ALSO</b></p>
|
||||
|
||||
<p style="margin-left:6%;">tar(1), archive_write_data(3),
|
||||
archive_write_set_options(3), libarchive(3), cpio(5),
|
||||
mtree(5), tar(5)</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">BSD
|
||||
February 28, 2017 BSD</p>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
264
dependencies/libarchive-3.4.2/doc/html/archive_write_format.3.html
vendored
Normal file
264
dependencies/libarchive-3.4.2/doc/html/archive_write_format.3.html
vendored
Normal file
|
@ -0,0 +1,264 @@
|
|||
<!-- Creator : groff version 1.22.3 -->
|
||||
<!-- CreationDate: Tue Feb 11 22:58:45 2020 -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="groff -Thtml, see www.gnu.org">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<meta name="Content-Style" content="text/css">
|
||||
<style type="text/css">
|
||||
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
h1 { text-align: center }
|
||||
</style>
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<p>ARCHIVE_WRITE_FORMAT(3) BSD Library Functions Manual
|
||||
ARCHIVE_WRITE_FORMAT(3)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>NAME</b></p>
|
||||
|
||||
|
||||
<p style="margin-left:6%;"><b>archive_write_set_format</b>,
|
||||
<b>archive_write_set_format_7zip</b>,
|
||||
<b>archive_write_set_format_ar</b>,
|
||||
<b>archive_write_set_format_ar_bsd</b>,
|
||||
<b>archive_write_set_format_ar_svr4</b>,
|
||||
<b>archive_write_set_format_by_name</b>,
|
||||
<b>archive_write_set_format_cpio</b>,
|
||||
<b>archive_write_set_format_cpio_newc</b>,
|
||||
<b>archive_write_set_format_filter_by_ext</b>,
|
||||
<b>archive_write_set_format_filter_by_ext_def</b>,
|
||||
<b>archive_write_set_format_gnutar</b>,
|
||||
<b>archive_write_set_format_iso9660</b>,
|
||||
<b>archive_write_set_format_mtree</b>,
|
||||
<b>archive_write_set_format_mtree_classic</b>,
|
||||
<b>archive_write_set_format_mtree_default</b>,
|
||||
<b>archive_write_set_format_pax</b>,
|
||||
<b>archive_write_set_format_pax_restricted</b>,
|
||||
<b>archive_write_set_format_raw</b>,
|
||||
<b>archive_write_set_format_shar</b>,
|
||||
<b>archive_write_set_format_shar_dump</b>,
|
||||
<b>archive_write_set_format_ustar</b>,
|
||||
<b>archive_write_set_format_v7tar</b>,
|
||||
<b>archive_write_set_format_warc</b>,
|
||||
<b>archive_write_set_format_xar</b>,
|
||||
<b>archive_write_set_format_zip</b> — functions for
|
||||
creating archives</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>LIBRARY</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Streaming Archive Library
|
||||
(libarchive, -larchive)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SYNOPSIS</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>#include
|
||||
<archive.h></b></p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_set_format</b>(<i>struct archive *</i>,
|
||||
<i>int code</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_set_format_7zip</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_set_format_ar</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_set_format_ar_bsd</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_set_format_ar_svr4</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_set_format_by_name</b>(<i>struct archive *</i>,
|
||||
<i>const char *name</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_set_format_cpio</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_set_format_cpio_newc</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_set_format_filter_by_ext</b>(<i>struct archive *</i>,
|
||||
<i>const char *filename</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_set_format_filter_by_ext_def</b>(<i>struct archive *</i>,
|
||||
<i>const char *filename</i>,
|
||||
<i>const char *def_ext</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_set_format_gnutar</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_set_format_iso9660</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_set_format_mtree</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_set_format_pax</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_set_format_pax_restricted</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_set_format_raw</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_set_format_shar</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_set_format_shar_dump</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_set_format_ustar</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_set_format_v7tar</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_set_format_warc</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_set_format_xar</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_set_format_zip</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>DESCRIPTION</b></p>
|
||||
|
||||
<p style="margin-left:6%;">These functions set the format
|
||||
that will be used for the archive.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The library can
|
||||
write a variety of common archive formats.</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_write_set_format</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Sets the format based on the
|
||||
format code (see <i>archive.h</i> for the full list of
|
||||
format codes). In particular, this can be used in
|
||||
conjunction with <b>archive_format</b>() to create a new
|
||||
archive with the same format as an existing archive.</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_write_set_format_by_name</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Sets the corresponding format
|
||||
based on the common name.</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_write_set_format_filter_by_ext</b>(),
|
||||
<b>archive_write_set_format_filter_by_ext_def</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Sets both filters and format
|
||||
based on the output filename. Supported extensions: .7z,
|
||||
.zip, .jar, .cpio, .iso, .a, .ar, .tar, .tgz, .tar.gz,
|
||||
.tar.bz2, .tar.xz</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_write_set_format_7zip</b>()
|
||||
<b>archive_write_set_format_ar_bsd</b>(),
|
||||
<b>archive_write_set_format_ar_svr4</b>(),
|
||||
<b>archive_write_set_format_cpio</b>()
|
||||
<b>archive_write_set_format_cpio_newc</b>()
|
||||
<b>archive_write_set_format_gnutar</b>()
|
||||
<b>archive_write_set_format_iso9660</b>()
|
||||
<b>archive_write_set_format_mtree</b>()
|
||||
<b>archive_write_set_format_mtree_classic</b>()
|
||||
<b>archive_write_set_format_pax</b>()
|
||||
<b>archive_write_set_format_pax_restricted</b>()
|
||||
<b>archive_write_set_format_raw</b>()
|
||||
<b>archive_write_set_format_shar</b>()
|
||||
<b>archive_write_set_format_shar_dump</b>()
|
||||
<b>archive_write_set_format_ustar</b>()
|
||||
<b>archive_write_set_format_v7tar</b>()
|
||||
<b>archive_write_set_format_warc</b>()
|
||||
<b>archive_write_set_format_xar</b>()
|
||||
<b>archive_write_set_format_zip</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Set the format as specified.
|
||||
More details on the formats supported by libarchive can be
|
||||
found in the libarchive-formats(5) manual page.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>RETURN VALUES</b></p>
|
||||
|
||||
<p style="margin-left:6%;">These functions return
|
||||
<b>ARCHIVE_OK</b> on success, or <b>ARCHIVE_FATAL</b>.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>ERRORS</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Detailed error codes and textual
|
||||
descriptions are available from the <b>archive_errno</b>()
|
||||
and <b>archive_error_string</b>() functions.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SEE ALSO</b></p>
|
||||
|
||||
<p style="margin-left:6%;">tar(1), archive_write(3),
|
||||
archive_write_set_options(3), libarchive(3), cpio(5),
|
||||
libarchive-formats(5), mtree(5), tar(5)</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">BSD
|
||||
February 14, 2013 BSD</p>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
116
dependencies/libarchive-3.4.2/doc/html/archive_write_free.3.html
vendored
Normal file
116
dependencies/libarchive-3.4.2/doc/html/archive_write_free.3.html
vendored
Normal file
|
@ -0,0 +1,116 @@
|
|||
<!-- Creator : groff version 1.22.3 -->
|
||||
<!-- CreationDate: Tue Feb 11 22:58:45 2020 -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="groff -Thtml, see www.gnu.org">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<meta name="Content-Style" content="text/css">
|
||||
<style type="text/css">
|
||||
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
h1 { text-align: center }
|
||||
</style>
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<p>ARCHIVE_WRITE_FREE(3) BSD Library Functions Manual
|
||||
ARCHIVE_WRITE_FREE(3)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>NAME</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>archive_write_fail</b>,
|
||||
<b>archive_write_close</b>, <b>archive_write_finish</b>,
|
||||
<b>archive_write_free</b> — functions for creating
|
||||
archives</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>LIBRARY</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Streaming Archive Library
|
||||
(libarchive, -larchive)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SYNOPSIS</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>#include
|
||||
<archive.h></b></p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_fail</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_close</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_finish</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_free</b>(<i>struct archive *</i>);</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>DESCRIPTION <br>
|
||||
archive_write_fail</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Always returns
|
||||
<b>ARCHIVE_FATAL</b>. This marks the archive object as being
|
||||
unusable; after calling this function, the only call that
|
||||
can succeed is <b>archive_write_free</b>() to release the
|
||||
resources. This can be used to speed recovery when the
|
||||
archive creation must be aborted. Note that the created
|
||||
archive is likely to be malformed in this case;</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_write_close</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Complete the archive and invoke
|
||||
the close callback.</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_write_finish</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">This is a deprecated synonym
|
||||
for <b>archive_write_free</b>().</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_write_free</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Invokes
|
||||
<b>archive_write_close</b>() if necessary, then releases all
|
||||
resources. If you need detailed information about
|
||||
<b>archive_write_close</b>() failures, you should be careful
|
||||
to call it separately, as you cannot obtain error
|
||||
information after <b>archive_write_free</b>() returns.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>RETURN VALUES</b></p>
|
||||
|
||||
<p style="margin-left:6%;">These functions return
|
||||
<b>ARCHIVE_OK</b> on success, or <b>ARCHIVE_FATAL</b>.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>ERRORS</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Detailed error codes and textual
|
||||
descriptions are available from the <b>archive_errno</b>()
|
||||
and <b>archive_error_string</b>() functions.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SEE ALSO</b></p>
|
||||
|
||||
<p style="margin-left:6%;">tar(1),
|
||||
archive_write_set_options(3), libarchive(3), cpio(5),
|
||||
mtree(5), tar(5)</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">BSD
|
||||
February 2, 2012 BSD</p>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
80
dependencies/libarchive-3.4.2/doc/html/archive_write_header.3.html
vendored
Normal file
80
dependencies/libarchive-3.4.2/doc/html/archive_write_header.3.html
vendored
Normal file
|
@ -0,0 +1,80 @@
|
|||
<!-- Creator : groff version 1.22.3 -->
|
||||
<!-- CreationDate: Tue Feb 11 22:58:45 2020 -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="groff -Thtml, see www.gnu.org">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<meta name="Content-Style" content="text/css">
|
||||
<style type="text/css">
|
||||
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
h1 { text-align: center }
|
||||
</style>
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<p>ARCHIVE_WRITE_HEADER(3) BSD Library Functions Manual
|
||||
ARCHIVE_WRITE_HEADER(3)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>NAME</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>archive_write_header</b>
|
||||
— functions for creating archives</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>LIBRARY</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Streaming Archive Library
|
||||
(libarchive, -larchive)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SYNOPSIS</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>#include
|
||||
<archive.h></b></p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_header</b>(<i>struct archive *</i>,
|
||||
<i>struct archive_entry *</i>);</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>DESCRIPTION</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Build and write a header using
|
||||
the data in the provided struct archive_entry structure. See
|
||||
archive_entry(3) for information on creating and populating
|
||||
struct archive_entry objects.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>RETURN VALUES</b></p>
|
||||
|
||||
<p style="margin-left:6%;">This function returns
|
||||
<b>ARCHIVE_OK</b> on success, or one of the following on
|
||||
error: <b>ARCHIVE_RETRY</b> for operations that might
|
||||
succeed if retried, <b>ARCHIVE_WARN</b> for unusual
|
||||
conditions that do not prevent further operations, and
|
||||
<b>ARCHIVE_FATAL</b> for serious errors that make remaining
|
||||
operations impossible.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>ERRORS</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Detailed error codes and textual
|
||||
descriptions are available from the <b>archive_errno</b>()
|
||||
and <b>archive_error_string</b>() functions.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SEE ALSO</b></p>
|
||||
|
||||
<p style="margin-left:6%;">tar(1),
|
||||
archive_write_set_options(3), libarchive(3), cpio(5),
|
||||
mtree(5), tar(5)</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">BSD
|
||||
February 2, 2012 BSD</p>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
67
dependencies/libarchive-3.4.2/doc/html/archive_write_new.3.html
vendored
Normal file
67
dependencies/libarchive-3.4.2/doc/html/archive_write_new.3.html
vendored
Normal file
|
@ -0,0 +1,67 @@
|
|||
<!-- Creator : groff version 1.22.3 -->
|
||||
<!-- CreationDate: Tue Feb 11 22:58:45 2020 -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="groff -Thtml, see www.gnu.org">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<meta name="Content-Style" content="text/css">
|
||||
<style type="text/css">
|
||||
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
h1 { text-align: center }
|
||||
</style>
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<p>ARCHIVE_WRITE_NEW(3) BSD Library Functions Manual
|
||||
ARCHIVE_WRITE_NEW(3)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>NAME</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>archive_write_new</b> —
|
||||
functions for creating archives</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>LIBRARY</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Streaming Archive Library
|
||||
(libarchive, -larchive)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SYNOPSIS</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>#include
|
||||
<archive.h></b></p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>struct
|
||||
archive *</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_new</b>(<i>void</i>);</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>DESCRIPTION</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Allocates and initializes a
|
||||
struct archive object suitable for writing a tar archive.
|
||||
NULL is returned on error.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">A complete
|
||||
description of the struct archive object can be found in the
|
||||
overview manual page for libarchive(3).</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SEE ALSO</b></p>
|
||||
|
||||
<p style="margin-left:6%;">tar(1), archive_write(3),
|
||||
archive_write_set_options(3), libarchive(3), cpio(5),
|
||||
mtree(5), tar(5)</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">BSD
|
||||
February 2, 2012 BSD</p>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
240
dependencies/libarchive-3.4.2/doc/html/archive_write_open.3.html
vendored
Normal file
240
dependencies/libarchive-3.4.2/doc/html/archive_write_open.3.html
vendored
Normal file
|
@ -0,0 +1,240 @@
|
|||
<!-- Creator : groff version 1.22.3 -->
|
||||
<!-- CreationDate: Tue Feb 11 22:58:45 2020 -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="groff -Thtml, see www.gnu.org">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<meta name="Content-Style" content="text/css">
|
||||
<style type="text/css">
|
||||
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
h1 { text-align: center }
|
||||
</style>
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<p>ARCHIVE_WRITE_OPEN(3) BSD Library Functions Manual
|
||||
ARCHIVE_WRITE_OPEN(3)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>NAME</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>archive_write_open</b>,
|
||||
<b>archive_write_open_fd</b>,
|
||||
<b>archive_write_open_FILE</b>,
|
||||
<b>archive_write_open_filename</b>,
|
||||
<b>archive_write_open_memory</b> — functions for
|
||||
creating archives</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>LIBRARY</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Streaming Archive Library
|
||||
(libarchive, -larchive)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SYNOPSIS</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>#include
|
||||
<archive.h></b></p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p><b>archive_write_open</b>(<i>struct archive *</i>,
|
||||
<i>void *client_data</i>,
|
||||
<i>archive_open_callback *</i>,
|
||||
<i>archive_write_callback *</i>,
|
||||
<i>archive_close_callback *</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_open_fd</b>(<i>struct archive *</i>,
|
||||
<i>int fd</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_open_FILE</b>(<i>struct archive *</i>,
|
||||
<i>FILE *file</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_write_open_filename</b>(<i>struct archive *</i>,
|
||||
<i>const char *filename</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p><b>archive_write_open_memory</b>(<i>struct archive *</i>,
|
||||
<i>void *buffer</i>, <i>size_t bufferSize</i>,
|
||||
<i>size_t *outUsed</i>);</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>DESCRIPTION <br>
|
||||
archive_write_open</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Freeze the settings, open the
|
||||
archive, and prepare for writing entries. This is the most
|
||||
generic form of this function, which accepts pointers to
|
||||
three callback functions which will be invoked by the
|
||||
compression layer to write the constructed archive. This
|
||||
does not alter the default archive padding.</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_write_open_fd</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">A convenience form of
|
||||
<b>archive_write_open</b>() that accepts a file descriptor.
|
||||
The <b>archive_write_open_fd</b>() function is safe for use
|
||||
with tape drives or other block-oriented devices.</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_write_open_FILE</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">A convenience form of
|
||||
<b>archive_write_open</b>() that accepts a <i>FILE *</i>
|
||||
pointer. Note that <b>archive_write_open_FILE</b>() is not
|
||||
safe for writing to tape drives or other devices that
|
||||
require correct blocking.</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_write_open_file</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">A deprecated synonym for
|
||||
<b>archive_write_open_filename</b>().</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_write_open_filename</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">A convenience form of
|
||||
<b>archive_write_open</b>() that accepts a filename. A NULL
|
||||
argument indicates that the output should be written to
|
||||
standard output; an argument of
|
||||
’’-’’ will open a file with that
|
||||
name. If you have not invoked
|
||||
<b>archive_write_set_bytes_in_last_block</b>(), then
|
||||
<b>archive_write_open_filename</b>() will adjust the
|
||||
last-block padding depending on the file: it will enable
|
||||
padding when writing to standard output or to a character or
|
||||
block device node, it will disable padding otherwise. You
|
||||
can override this by manually invoking
|
||||
<b>archive_write_set_bytes_in_last_block</b>() before
|
||||
calling <b>archive_write_open</b>(). The
|
||||
<b>archive_write_open_filename</b>() function is safe for
|
||||
use with tape drives or other block-oriented devices.</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_write_open_memory</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">A convenience form of
|
||||
<b>archive_write_open</b>() that accepts a pointer to a
|
||||
block of memory that will receive the archive. The final
|
||||
<i>size_t *</i> argument points to a variable that will be
|
||||
updated after each write to reflect how much of the buffer
|
||||
is currently in use. You should be careful to ensure that
|
||||
this variable remains allocated until after the archive is
|
||||
closed. This function will disable padding unless you have
|
||||
specifically set the block size.</p>
|
||||
|
||||
<p style="margin-left:6%;">More information about the
|
||||
<i>struct archive</i> object and the overall design of the
|
||||
library can be found in the libarchive(3) overview.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">Note that the
|
||||
convenience forms above vary in how they block the output.
|
||||
See archive_write_blocksize(3) if you need to control the
|
||||
block size used for writes or the end-of-file padding
|
||||
behavior.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>CLIENT CALLBACKS</b></p>
|
||||
|
||||
<p style="margin-left:6%;">To use this library, you will
|
||||
need to define and register callback functions that will be
|
||||
invoked to write data to the resulting archive. These
|
||||
functions are registered by calling
|
||||
<b>archive_write_open</b>():</p>
|
||||
|
||||
<p style="margin-left:14%; margin-top: 1em"><i>typedef
|
||||
int</i> <b>archive_open_callback</b>(<i>struct archive
|
||||
*</i>, <i>void *client_data</i>)</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The open
|
||||
callback is invoked by <b>archive_write_open</b>(). It
|
||||
should return <b>ARCHIVE_OK</b> if the underlying file or
|
||||
data source is successfully opened. If the open fails, it
|
||||
should call <b>archive_set_error</b>() to register an error
|
||||
code and message and return <b>ARCHIVE_FATAL</b>.</p>
|
||||
|
||||
<p style="margin-left:14%; margin-top: 1em"><i>typedef
|
||||
la_ssize_t</i></p>
|
||||
|
||||
|
||||
<p><b>archive_write_callback</b>(<i>struct archive *</i>,
|
||||
<i>void *client_data</i>,
|
||||
<i>const void *buffer</i>,
|
||||
<i>size_t length</i>)</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The write
|
||||
callback is invoked whenever the library needs to write raw
|
||||
bytes to the archive. For correct blocking, each call to the
|
||||
write callback function should translate into a single
|
||||
write(2) system call. This is especially critical when
|
||||
writing archives to tape drives. On success, the write
|
||||
callback should return the number of bytes actually written.
|
||||
On error, the callback should invoke
|
||||
<b>archive_set_error</b>() to register an error code and
|
||||
message and return -1.</p>
|
||||
|
||||
<p style="margin-left:14%; margin-top: 1em"><i>typedef
|
||||
int</i> <b>archive_close_callback</b>(<i>struct archive
|
||||
*</i>, <i>void *client_data</i>)</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The close
|
||||
callback is invoked by archive_close when the archive
|
||||
processing is complete. The callback should return
|
||||
<b>ARCHIVE_OK</b> on success. On failure, the callback
|
||||
should invoke <b>archive_set_error</b>() to register an
|
||||
error code and message and return <b>ARCHIVE_FATAL</b>.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">Note that if the
|
||||
client-provided write callback function returns a non-zero
|
||||
value, that error will be propagated back to the caller
|
||||
through whatever API function resulted in that call, which
|
||||
may include <b>archive_write_header</b>(),
|
||||
<b>archive_write_data</b>(), <b>archive_write_close</b>(),
|
||||
<b>archive_write_finish</b>(), or
|
||||
<b>archive_write_free</b>(). The client callback can call
|
||||
<b>archive_set_error</b>() to provide values that can then
|
||||
be retrieved by <b>archive_errno</b>() and
|
||||
<b>archive_error_string</b>().</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>RETURN VALUES</b></p>
|
||||
|
||||
<p style="margin-left:6%;">These functions return
|
||||
<b>ARCHIVE_OK</b> on success, or <b>ARCHIVE_FATAL</b>.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>ERRORS</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Detailed error codes and textual
|
||||
descriptions are available from the <b>archive_errno</b>()
|
||||
and <b>archive_error_string</b>() functions.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SEE ALSO</b></p>
|
||||
|
||||
<p style="margin-left:6%;">tar(1), archive_write(3),
|
||||
archive_write_blocksize(3), archive_write_filter(3),
|
||||
archive_write_format(3), archive_write_new(3),
|
||||
archive_write_set_options(3), libarchive(3), cpio(5),
|
||||
mtree(5), tar(5)</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">BSD
|
||||
February 2, 2012 BSD</p>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
829
dependencies/libarchive-3.4.2/doc/html/archive_write_set_options.3.html
vendored
Normal file
829
dependencies/libarchive-3.4.2/doc/html/archive_write_set_options.3.html
vendored
Normal file
|
@ -0,0 +1,829 @@
|
|||
<!-- Creator : groff version 1.22.3 -->
|
||||
<!-- CreationDate: Tue Feb 11 22:58:46 2020 -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="groff -Thtml, see www.gnu.org">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<meta name="Content-Style" content="text/css">
|
||||
<style type="text/css">
|
||||
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
h1 { text-align: center }
|
||||
</style>
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<p>ARCHIVE_WRITE_OPTIONS(3) BSD Library Functions Manual
|
||||
ARCHIVE_WRITE_OPTIONS(3)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>NAME</b></p>
|
||||
|
||||
|
||||
<p style="margin-left:6%;"><b>archive_write_set_filter_option</b>,
|
||||
<b>archive_write_set_format_option</b>,
|
||||
<b>archive_write_set_option</b>,
|
||||
<b>archive_write_set_options</b> — functions
|
||||
controlling options for writing archives</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>LIBRARY</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Streaming Archive Library
|
||||
(libarchive, -larchive)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SYNOPSIS</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><i>int</i></p>
|
||||
|
||||
|
||||
<p><b>archive_write_set_filter_option</b>(<i>struct archive *</i>,
|
||||
<i>const char *module</i>,
|
||||
<i>const char *option</i>,
|
||||
<i>const char *value</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p><b>archive_write_set_format_option</b>(<i>struct archive *</i>,
|
||||
<i>const char *module</i>,
|
||||
<i>const char *option</i>,
|
||||
<i>const char *value</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p><b>archive_write_set_option</b>(<i>struct archive *</i>,
|
||||
<i>const char *module</i>,
|
||||
<i>const char *option</i>,
|
||||
<i>const char *value</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p><b>archive_write_set_options</b>(<i>struct archive *</i>,
|
||||
<i>const char *options</i>);</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>DESCRIPTION</b></p>
|
||||
|
||||
<p style="margin-left:6%;">These functions provide a way
|
||||
for libarchive clients to configure specific write
|
||||
modules.</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_write_set_filter_option</b>(),
|
||||
<b>archive_write_set_format_option</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Specifies an option that will
|
||||
be passed to the currently-registered filters (including
|
||||
decompression filters) or format readers.</p>
|
||||
|
||||
<p style="margin-left:17%; margin-top: 1em">If
|
||||
<i>option</i> and <i>value</i> are both NULL, these
|
||||
functions will do nothing and <b>ARCHIVE_OK</b> will be
|
||||
returned. If <i>option</i> is NULL but <i>value</i> is not,
|
||||
these functions will do nothing and <b>ARCHIVE_FAILED</b>
|
||||
will be returned.</p>
|
||||
|
||||
<p style="margin-left:17%; margin-top: 1em">If
|
||||
<i>module</i> is not NULL, <i>option</i> and <i>value</i>
|
||||
will be provided to the filter or reader named
|
||||
<i>module</i>. The return value will be either
|
||||
<b>ARCHIVE_OK</b> if the option was successfully handled or
|
||||
<b>ARCHIVE_WARN</b> if the option was unrecognized by the
|
||||
module or could otherwise not be handled. If there is no
|
||||
such module, <b>ARCHIVE_FAILED</b> will be returned.</p>
|
||||
|
||||
<p style="margin-left:17%; margin-top: 1em">If
|
||||
<i>module</i> is NULL, <i>option</i> and <i>value</i> will
|
||||
be provided to every registered module. If any module
|
||||
returns <b>ARCHIVE_FATAL</b>, this value will be returned
|
||||
immediately. Otherwise, <b>ARCHIVE_OK</b> will be returned
|
||||
if any module accepts the option, and <b>ARCHIVE_FAILED</b>
|
||||
in all other cases.</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_write_set_option</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Calls
|
||||
<b>archive_write_set_format_option</b>(), then
|
||||
<b>archive_write_set_filter_option</b>(). If either function
|
||||
returns <b>ARCHIVE_FATAL</b>, <b>ARCHIVE_FATAL</b> will be
|
||||
returned immediately. Otherwise, the greater of the two
|
||||
values will be returned.</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_write_set_options</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;"><i>options</i> is a
|
||||
comma-separated list of options. If <i>options</i> is NULL
|
||||
or empty, <b>ARCHIVE_OK</b> will be returned
|
||||
immediately.</p>
|
||||
|
||||
<p style="margin-left:17%; margin-top: 1em">Individual
|
||||
options have one of the following forms:</p>
|
||||
|
||||
<p><i>option=value</i></p>
|
||||
|
||||
<p style="margin-left:27%;">The option/value pair will be
|
||||
provided to every module. Modules that do not accept an
|
||||
option with this name will ignore it.</p>
|
||||
|
||||
<p><i>option</i></p>
|
||||
|
||||
<p style="margin-left:27%; margin-top: 1em">The option will
|
||||
be provided to every module with a value of
|
||||
’’1’’.</p>
|
||||
|
||||
<p><i>!option</i></p>
|
||||
|
||||
<p style="margin-left:27%;">The option will be provided to
|
||||
every module with a NULL value.</p>
|
||||
|
||||
<p><i>module:option=value</i>, <i>module:option</i>,
|
||||
<i>module:!option</i></p>
|
||||
|
||||
<p style="margin-left:27%;">As above, but the corresponding
|
||||
option and value will be provided only to modules whose name
|
||||
matches <i>module</i>.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>OPTIONS</b> <br>
|
||||
Filter b64encode <b><br>
|
||||
mode</b></p>
|
||||
|
||||
<p style="margin-left:27%; margin-top: 1em">The value is
|
||||
interpreted as octal digits specifying the file mode.</p>
|
||||
|
||||
<p><b>name</b></p>
|
||||
|
||||
<p style="margin-left:27%; margin-top: 1em">The value
|
||||
specifies the file name.</p>
|
||||
|
||||
<p>Filter bzip2 <b><br>
|
||||
compression-level</b></p>
|
||||
|
||||
<p style="margin-left:27%;">The value is interpreted as a
|
||||
decimal integer specifying the bzip2 compression level.
|
||||
Supported values are from 1 to 9.</p>
|
||||
|
||||
<p>Filter gzip <b><br>
|
||||
compression-level</b></p>
|
||||
|
||||
<p style="margin-left:27%;">The value is interpreted as a
|
||||
decimal integer specifying the gzip compression level.
|
||||
Supported values are from 0 to 9.</p>
|
||||
|
||||
<p><b>timestamp</b></p>
|
||||
|
||||
<p style="margin-left:27%;">Store timestamp. This is
|
||||
enabled by default.</p>
|
||||
|
||||
<p>Filter lrzip <b><br>
|
||||
compression</b>=<i>type</i></p>
|
||||
|
||||
<p style="margin-left:27%;">Use <i>type</i> as compression
|
||||
method. Supported values are
|
||||
’’bzip2’’,
|
||||
’’gzipi’’,
|
||||
’’lzo’’ (ultra fast), and
|
||||
’’zpaq’’ (best, extremely slow).</p>
|
||||
|
||||
<p><b>compression-level</b></p>
|
||||
|
||||
<p style="margin-left:27%;">The value is interpreted as a
|
||||
decimal integer specifying the lrzip compression level.
|
||||
Supported values are from 1 to 9.</p>
|
||||
|
||||
<p>Filter lz4 <b><br>
|
||||
compression-level</b></p>
|
||||
|
||||
<p style="margin-left:27%;">The value is interpreted as a
|
||||
decimal integer specifying the lz4 compression level.
|
||||
Supported values are from 0 to 9.</p>
|
||||
|
||||
<p><b>stream-checksum</b></p>
|
||||
|
||||
<p style="margin-left:27%;">Enable stream checksum. This is
|
||||
enabled by default.</p>
|
||||
|
||||
<p><b>block-checksum</b></p>
|
||||
|
||||
<p style="margin-left:27%;">Enable block checksum. This is
|
||||
disabled by default.</p>
|
||||
|
||||
<p><b>block-size</b></p>
|
||||
|
||||
<p style="margin-left:27%;">The value is interpreted as a
|
||||
decimal integer specifying the lz4 compression block size.
|
||||
Supported values are from 4 to 7 (default).</p>
|
||||
|
||||
<p><b>block-dependence</b></p>
|
||||
|
||||
<p style="margin-left:27%;">Use the previous block of the
|
||||
block being compressed for a compression dictionary to
|
||||
improve compression ratio. This is disabled by default.</p>
|
||||
|
||||
<p>Filter lzop <b><br>
|
||||
compression-level</b></p>
|
||||
|
||||
<p style="margin-left:27%;">The value is interpreted as a
|
||||
decimal integer specifying the lzop compression level.
|
||||
Supported values are from 1 to 9.</p>
|
||||
|
||||
<p>Filter uuencode <b><br>
|
||||
mode</b></p>
|
||||
|
||||
<p style="margin-left:27%; margin-top: 1em">The value is
|
||||
interpreted as octal digits specifying the file mode.</p>
|
||||
|
||||
<p><b>name</b></p>
|
||||
|
||||
<p style="margin-left:27%; margin-top: 1em">The value
|
||||
specifies the file name.</p>
|
||||
|
||||
<p>Filter xz <b><br>
|
||||
compression-level</b></p>
|
||||
|
||||
<p style="margin-left:27%;">The value is interpreted as a
|
||||
decimal integer specifying the compression level. Supported
|
||||
values are from 0 to 9.</p>
|
||||
|
||||
<p><b>threads</b></p>
|
||||
|
||||
<p style="margin-left:27%;">The value is interpreted as a
|
||||
decimal integer specifying the number of threads for
|
||||
multi-threaded lzma compression. If supported, the default
|
||||
value is read from <b>lzma_cputhreads</b>().</p>
|
||||
|
||||
<p>Filter zstd <b><br>
|
||||
compression-level</b></p>
|
||||
|
||||
<p style="margin-left:27%;">The value is interpreted as a
|
||||
decimal integer specifying the compression level. Supported
|
||||
values are from 1 to 22.</p>
|
||||
|
||||
<p>Format 7zip <b><br>
|
||||
compression</b></p>
|
||||
|
||||
<p style="margin-left:27%;">The value is one of
|
||||
’’store’’,
|
||||
’’deflate’’,
|
||||
’’bzip2’’,
|
||||
’’lzma1’’,
|
||||
’’lzma2’’ or
|
||||
’’ppmd’’ to indicate how the
|
||||
following entries should be compressed. Note that this
|
||||
setting is ignored for directories, symbolic links, and
|
||||
other special entries.</p>
|
||||
|
||||
<p><b>compression-level</b></p>
|
||||
|
||||
<p style="margin-left:27%;">The value is interpreted as a
|
||||
decimal integer specifying the compression level. Values
|
||||
between 0 and 9 are supported. The interpretation of the
|
||||
compression level depends on the chosen compression
|
||||
method.</p>
|
||||
|
||||
<p>Format cpio <b><br>
|
||||
hdrcharset</b></p>
|
||||
|
||||
<p style="margin-left:27%;">The value is used as a
|
||||
character set name that will be used when translating file
|
||||
names.</p>
|
||||
|
||||
<p>Format gnutar <b><br>
|
||||
hdrcharset</b></p>
|
||||
|
||||
<p style="margin-left:27%;">The value is used as a
|
||||
character set name that will be used when translating file,
|
||||
group and user names.</p>
|
||||
|
||||
<p>Format iso9660 - volume metadata</p>
|
||||
|
||||
<p style="margin-left:17%;">These options are used to set
|
||||
standard ISO9660 metadata.</p>
|
||||
|
||||
<p><b>abstract-file</b>=<i>filename</i></p>
|
||||
|
||||
<p style="margin-left:27%;">The file with the specified
|
||||
name will be identified in the ISO9660 metadata as holding
|
||||
the abstract for this volume. Default: none.</p>
|
||||
|
||||
<p><b>application-id</b>=<i>filename</i></p>
|
||||
|
||||
<p style="margin-left:27%;">The file with the specified
|
||||
name will be identified in the ISO9660 metadata as holding
|
||||
the application identifier for this volume. Default:
|
||||
none.</p>
|
||||
|
||||
<p><b>biblio-file</b>=<i>filename</i></p>
|
||||
|
||||
<p style="margin-left:27%;">The file with the specified
|
||||
name will be identified in the ISO9660 metadata as holding
|
||||
the bibliography for this volume. Default: none.</p>
|
||||
|
||||
<p><b>copyright-file</b>=<i>filename</i></p>
|
||||
|
||||
<p style="margin-left:27%;">The file with the specified
|
||||
name will be identified in the ISO9660 metadata as holding
|
||||
the copyright for this volume. Default: none.</p>
|
||||
|
||||
<p><b>publisher</b>=<i>filename</i></p>
|
||||
|
||||
<p style="margin-left:27%;">The file with the specified
|
||||
name will be identified in the ISO9660 metadata as holding
|
||||
the publisher information for this volume. Default:
|
||||
none.</p>
|
||||
|
||||
<p><b>volume-id</b>=<i>string</i></p>
|
||||
|
||||
<p style="margin-left:27%;">The specified string will be
|
||||
used as the Volume Identifier in the ISO9660 metadata. It is
|
||||
limited to 32 bytes. Default: none.</p>
|
||||
|
||||
<p>Format iso9660 - boot support</p>
|
||||
|
||||
<p style="margin-left:17%;">These options are used to make
|
||||
an ISO9660 image that can be directly booted on various
|
||||
systems.</p>
|
||||
|
||||
<p><b>boot</b>=<i>filename</i></p>
|
||||
|
||||
<p style="margin-left:27%;">The file matching this name
|
||||
will be used as the El Torito boot image file.</p>
|
||||
|
||||
<p><b>boot-catalog</b>=<i>name</i></p>
|
||||
|
||||
<p style="margin-left:27%;">The name that will be used for
|
||||
the El Torito boot catalog. Default: <i>boot.catalog</i></p>
|
||||
|
||||
<p><b>boot-info-table</b></p>
|
||||
|
||||
<p style="margin-left:27%;">The boot image file provided by
|
||||
the <b>boot</b>=<i>filename</i> option will be edited with
|
||||
appropriate boot information in bytes 8 through 64. Default:
|
||||
disabled</p>
|
||||
|
||||
<p><b>boot-load-seg</b>=<i>hexadecimal-number</i></p>
|
||||
|
||||
<p style="margin-left:27%;">The load segment for a
|
||||
no-emulation boot image.</p>
|
||||
|
||||
<p><b>boot-load-size</b>=<i>decimal-number</i></p>
|
||||
|
||||
<p style="margin-left:27%;">The number of
|
||||
"virtual" 512-byte sectors to be loaded from a
|
||||
no-emulation boot image. Some very old BIOSes can only load
|
||||
very small images, setting this value to 4 will often allow
|
||||
such BIOSes to load the first part of the boot image (which
|
||||
will then need to be intelligent enough to load the rest of
|
||||
itself). This should not be needed unless you are trying to
|
||||
support systems with very old BIOSes. This defaults to the
|
||||
full size of the image.</p>
|
||||
|
||||
<p><b>boot-type</b>=<i>value</i></p>
|
||||
|
||||
<p style="margin-left:27%;">Specifies the boot semantics
|
||||
used by the El Torito boot image: If the <i>value</i> is
|
||||
<b>fd</b>, then the boot image is assumed to be a bootable
|
||||
floppy image. If the <i>value</i> is <b>hd</b>, then the
|
||||
boot image is assumed to be a bootable hard disk image. If
|
||||
the <i>value</i> is <b>no-emulation</b>, the boot image is
|
||||
used without floppy or hard disk emulation. If the boot
|
||||
image is exactly 1.2MB, 1.44MB, or 2.88MB, then the default
|
||||
is <b>fd</b>, otherwise the default is
|
||||
<b>no-emulation</b>.</p>
|
||||
|
||||
<p>Format iso9660 - filename and size extensions</p>
|
||||
|
||||
<p style="margin-left:17%;">Various extensions to the base
|
||||
ISO9660 format.</p>
|
||||
|
||||
<p><b>allow-ldots</b></p>
|
||||
|
||||
<p style="margin-left:27%;">If enabled, allows filenames to
|
||||
begin with a leading period. If disabled, filenames that
|
||||
begin with a leading period will have that period replaced
|
||||
by an underscore character in the standard ISO9660
|
||||
namespace. This does not impact names stored in the
|
||||
Rockridge or Joliet extension area. Default: disabled.</p>
|
||||
|
||||
<p><b>allow-lowercase</b></p>
|
||||
|
||||
<p style="margin-left:27%;">If enabled, allows filenames to
|
||||
contain lowercase characters. If disabled, filenames will be
|
||||
forced to uppercase. This does not impact names stored in
|
||||
the Rockridge or Joliet extension area. Default:
|
||||
disabled.</p>
|
||||
|
||||
<p><b>allow-multidot</b></p>
|
||||
|
||||
<p style="margin-left:27%;">If enabled, allows filenames to
|
||||
contain multiple period characters, in violation of the
|
||||
ISO9660 specification. If disabled, additional periods will
|
||||
be converted to underscore characters. This does not impact
|
||||
names stored in the Rockridge or Joliet extension area.
|
||||
Default: disabled.</p>
|
||||
|
||||
<p><b>allow-period</b></p>
|
||||
|
||||
<p style="margin-left:27%;">If enabled, allows filenames to
|
||||
contain trailing period characters, in violation of the
|
||||
ISO9660 specification. If disabled, trailing periods will be
|
||||
converted to underscore characters. This does not impact
|
||||
names stored in the Rockridge or Joliet extension area.
|
||||
Default: disabled.</p>
|
||||
|
||||
<p><b>allow-pvd-lowercase</b></p>
|
||||
|
||||
<p style="margin-left:27%;">If enabled, the Primary Volume
|
||||
Descriptor may contain lowercase ASCII characters, in
|
||||
violation of the ISO9660 specification. If disabled,
|
||||
characters will be converted to uppercase ASCII. Default:
|
||||
disabled.</p>
|
||||
|
||||
<p><b>allow-sharp-tilde</b></p>
|
||||
|
||||
<p style="margin-left:27%;">If enabled, sharp and tilde
|
||||
characters will be permitted in filenames, in violation if
|
||||
the ISO9660 specification. If disabled, such characters will
|
||||
be converted to underscore characters. Default:
|
||||
disabled.</p>
|
||||
|
||||
<p><b>allow-vernum</b></p>
|
||||
|
||||
<p style="margin-left:27%;">If enabled, version numbers
|
||||
will be included with files. If disabled, version numbers
|
||||
will be suppressed, in violation of the ISO9660 standard.
|
||||
This does not impact names stored in the Rockridge or Joliet
|
||||
extension area. Default: enabled.</p>
|
||||
|
||||
<p><b>iso-level</b></p>
|
||||
|
||||
<p style="margin-left:27%;">This enables support for file
|
||||
size and file name extensions in the core ISO9660 area. The
|
||||
name extensions specified here do not affect the names
|
||||
stored in the Rockridge or Joliet extension areas.</p>
|
||||
|
||||
<p><b>iso-level=1</b></p>
|
||||
|
||||
<p style="margin-left:37%;">The most compliant form of
|
||||
ISO9660 image. Filenames are limited to 8.3 uppercase
|
||||
format, directory names are limited to 8 uppercase
|
||||
characters, files are limited to 4 GiB, the complete ISO9660
|
||||
image cannot exceed 4 GiB.</p>
|
||||
|
||||
<p><b>iso-level=2</b></p>
|
||||
|
||||
<p style="margin-left:37%;">Filenames are limited to 30
|
||||
uppercase characters with a 30-character extension,
|
||||
directory names are limited to 30 characters, files are
|
||||
limited to 4 GiB.</p>
|
||||
|
||||
<p><b>iso-level=3</b></p>
|
||||
|
||||
<p style="margin-left:37%;">As with <b>iso-level=2</b>,
|
||||
except that files may exceed 4 GiB.</p>
|
||||
|
||||
<p><b>iso-level=4</b></p>
|
||||
|
||||
<p style="margin-left:37%;">As with <b>iso-level=3</b>,
|
||||
except that filenames may be up to 193 characters and may
|
||||
include arbitrary 8-bit characters.</p>
|
||||
|
||||
<p><b>joliet</b></p>
|
||||
|
||||
|
||||
<p style="margin-left:27%; margin-top: 1em">Microsoft’s
|
||||
Joliet extensions store a completely separate set of
|
||||
directory information about each file. In particular, this
|
||||
information includes Unicode filenames of up to 255
|
||||
characters. Default: enabled.</p>
|
||||
|
||||
<p><b>limit-depth</b></p>
|
||||
|
||||
<p style="margin-left:27%;">If enabled, libarchive will use
|
||||
directory relocation records to ensure that no pathname
|
||||
exceeds the ISO9660 limit of 8 directory levels. If
|
||||
disabled, no relocation will occur. Default: enabled.</p>
|
||||
|
||||
<p><b>limit-dirs</b></p>
|
||||
|
||||
<p style="margin-left:27%;">If enabled, libarchive will
|
||||
cause an error if there are more than 65536 directories. If
|
||||
disabled, there is no limit on the number of directories.
|
||||
Default: enabled</p>
|
||||
|
||||
<p><b>pad</b></p>
|
||||
|
||||
<p style="margin-left:27%; margin-top: 1em">If enabled, 300
|
||||
kiB of zero bytes will be appended to the end of the
|
||||
archive. Default: enabled</p>
|
||||
|
||||
<p><b>relaxed-filenames</b></p>
|
||||
|
||||
<p style="margin-left:27%;">If enabled, all 7-bit ASCII
|
||||
characters are permitted in filenames (except lowercase
|
||||
characters unless <b>allow-lowercase</b> is also specified).
|
||||
This violates ISO9660 standards. This does not impact names
|
||||
stored in the Rockridge or Joliet extension area. Default:
|
||||
disabled.</p>
|
||||
|
||||
<p><b>rockridge</b></p>
|
||||
|
||||
<p style="margin-left:27%;">The Rockridge extensions store
|
||||
an additional set of POSIX-style file information with each
|
||||
file, including mtime, atime, ctime, permissions, and long
|
||||
filenames with arbitrary 8-bit characters. These extensions
|
||||
also support symbolic links and other POSIX file types.
|
||||
Default: enabled.</p>
|
||||
|
||||
<p>Format iso9660 - zisofs support</p>
|
||||
|
||||
<p style="margin-left:17%;">The zisofs extensions permit
|
||||
each file to be independently compressed using a
|
||||
gzip-compatible compression. This can provide significant
|
||||
size savings, but requires the reading system to have
|
||||
support for these extensions. These extensions are disabled
|
||||
by default.</p>
|
||||
|
||||
<p><b>compression-level</b>=number</p>
|
||||
|
||||
<p style="margin-left:27%;">The compression level used by
|
||||
the deflate compressor. Ranges from 0 (least effort) to 9
|
||||
(most effort). Default: 6</p>
|
||||
|
||||
<p><b>zisofs</b></p>
|
||||
|
||||
<p style="margin-left:27%; margin-top: 1em">Synonym for
|
||||
<b>zisofs=direct</b>.</p>
|
||||
|
||||
<p><b>zisofs=direct</b></p>
|
||||
|
||||
<p style="margin-left:27%;">Compress each file in the
|
||||
archive. Unlike <b>zisofs=indirect</b>, this is handled
|
||||
entirely within libarchive and does not require a separate
|
||||
utility. For best results, libarchive tests each file and
|
||||
will store the file uncompressed if the compression does not
|
||||
actually save any space. In particular, files under 2k will
|
||||
never be compressed. Note that boot image files are never
|
||||
compressed.</p>
|
||||
|
||||
<p><b>zisofs=indirect</b></p>
|
||||
|
||||
<p style="margin-left:27%;">Recognizes files that have
|
||||
already been compressed with the <b>mkzftree</b> utility and
|
||||
sets up the necessary file metadata so that readers will
|
||||
correctly identify these as zisofs-compressed files.</p>
|
||||
|
||||
<p><b>zisofs-exclude</b>=<i>filename</i></p>
|
||||
|
||||
<p style="margin-left:27%;">Specifies a filename that
|
||||
should not be compressed when using <b>zisofs=direct</b>.
|
||||
This option can be provided multiple times to suppress
|
||||
compression on many files.</p>
|
||||
|
||||
<p>Format mtree <b><br>
|
||||
cksum</b>, <b>device</b>, <b>flags</b>, <b>gid</b>,
|
||||
<b>gname</b>, <b>indent</b>, <b>link</b>, <b>md5</b>,
|
||||
<b>mode</b>, <b>nlink</b>, <b>rmd160</b>, <b>sha1</b>,
|
||||
<b>sha256</b>, <b>sha384</b>, <b>sha512</b>, <b>size</b>,
|
||||
<b>time</b>, <b>uid</b>, <b>uname</b></p>
|
||||
|
||||
<p style="margin-left:27%;">Enable a particular keyword in
|
||||
the mtree output. Prefix with an exclamation mark to disable
|
||||
the corresponding keyword. The default is equivalent to
|
||||
’’device, flags, gid, gname, link, mode, nlink,
|
||||
size, time, type, uid, uname’’.</p>
|
||||
|
||||
<p><b>all</b></p>
|
||||
|
||||
<p style="margin-left:27%; margin-top: 1em">Enables all of
|
||||
the above keywords.</p>
|
||||
|
||||
<p><b>use-set</b></p>
|
||||
|
||||
<p style="margin-left:27%;">Enables generation of
|
||||
<b>/set</b> lines that specify default values for the
|
||||
following files and/or directories.</p>
|
||||
|
||||
<p><b>indent</b></p>
|
||||
|
||||
<p style="margin-left:27%; margin-top: 1em">XXX needs
|
||||
explanation XXX</p>
|
||||
|
||||
<p>Format newc <b><br>
|
||||
hdrcharset</b></p>
|
||||
|
||||
<p style="margin-left:27%;">The value is used as a
|
||||
character set name that will be used when translating file
|
||||
names.</p>
|
||||
|
||||
<p>Format pax <b><br>
|
||||
hdrcharset</b></p>
|
||||
|
||||
<p style="margin-left:27%;">The value is used as a
|
||||
character set name that will be used when translating file,
|
||||
group and user names. The value is one of
|
||||
’’BINARY’’ or
|
||||
’’UTF-8’’. With
|
||||
’’BINARY’’ there is no character
|
||||
conversion, with ’’UTF-8’’ names are
|
||||
converted to UTF-8.</p>
|
||||
|
||||
<p><b>xattrheader</b></p>
|
||||
|
||||
<p style="margin-left:27%;">When storing extended
|
||||
attributes, this option configures which headers should be
|
||||
written. The value is one of
|
||||
’’all’’,
|
||||
’’LIBARCHIVE’’, or
|
||||
’’SCHILY’’. By default, both
|
||||
’’LIBARCHIVE.xattr’’ and
|
||||
’’SCHILY.xattr’’ headers are
|
||||
written.</p>
|
||||
|
||||
<p>Format ustar <b><br>
|
||||
hdrcharset</b></p>
|
||||
|
||||
<p style="margin-left:27%;">The value is used as a
|
||||
character set name that will be used when translating file,
|
||||
group and user names.</p>
|
||||
|
||||
<p>Format v7tar <b><br>
|
||||
hdrcharset</b></p>
|
||||
|
||||
<p style="margin-left:27%;">The value is used as a
|
||||
character set name that will be used when translating file,
|
||||
group and user names.</p>
|
||||
|
||||
<p>Format warc <b><br>
|
||||
omit-warcinfo</b></p>
|
||||
|
||||
<p style="margin-left:27%;">Set to
|
||||
’’true’’ to disable output of the
|
||||
warcinfo record.</p>
|
||||
|
||||
<p>Format xar <b><br>
|
||||
checksum</b>=<i>type</i></p>
|
||||
|
||||
<p style="margin-left:27%;">Use <i>type</i> as file
|
||||
checksum method. Supported values are
|
||||
’’none’’,
|
||||
’’md5’’, and
|
||||
’’sha1’’ (default).</p>
|
||||
|
||||
<p><b>compression</b>=<i>type</i></p>
|
||||
|
||||
<p style="margin-left:27%;">Use <i>type</i> as compression
|
||||
method. Supported values are
|
||||
’’none’’,
|
||||
’’bzip2’’,
|
||||
’’gzip’’ (default),
|
||||
’’lzma’’ and
|
||||
’’xz’’.</p>
|
||||
|
||||
<p><b>compression_level</b></p>
|
||||
|
||||
<p style="margin-left:27%;">The value is a decimal integer
|
||||
from 1 to 9 specifying the compression level.</p>
|
||||
|
||||
<p><b>toc-checksum</b>=<i>type</i></p>
|
||||
|
||||
<p style="margin-left:27%;">Use <i>type</i> as table of
|
||||
contents checksum method. Supported values are
|
||||
’’none’’,
|
||||
’’md5’’ and
|
||||
’’sha1’’ (default).</p>
|
||||
|
||||
<p>Format zip <b><br>
|
||||
compression</b></p>
|
||||
|
||||
<p style="margin-left:27%;">The value is either
|
||||
’’store’’ or
|
||||
’’deflate’’ to indicate how the
|
||||
following entries should be compressed. Note that this
|
||||
setting is ignored for directories, symbolic links, and
|
||||
other special entries.</p>
|
||||
|
||||
<p><b>compression-level</b></p>
|
||||
|
||||
<p style="margin-left:27%;">The value is interpreted as a
|
||||
decimal integer specifying the compression level. Values
|
||||
between 0 and 9 are supported. A compression level of 0
|
||||
switches the compression method to
|
||||
’’store’’, other values will enable
|
||||
’’deflate’’ compression with the
|
||||
given level.</p>
|
||||
|
||||
<p><b>encryption</b></p>
|
||||
|
||||
<p style="margin-left:27%;">Enable encryption using
|
||||
traditional zip encryption.</p>
|
||||
|
||||
<p><b>encryption</b>=<i>type</i></p>
|
||||
|
||||
<p style="margin-left:27%;">Use <i>type</i> as encryption
|
||||
type. Supported values are
|
||||
’’zipcrypt’’ (traditional zip
|
||||
encryption), ’’aes128’’ (WinZip
|
||||
AES-128 encryption) and ’’aes256’’
|
||||
(WinZip AES-256 encryption).</p>
|
||||
|
||||
<p><b>experimental</b></p>
|
||||
|
||||
<p style="margin-left:27%;">This boolean option enables or
|
||||
disables experimental Zip features that may not be
|
||||
compatible with other Zip implementations.</p>
|
||||
|
||||
<p><b>fakecrc32</b></p>
|
||||
|
||||
<p style="margin-left:27%;">This boolean option disables
|
||||
CRC calculations. All CRC fields are set to zero. It should
|
||||
not be used except for testing purposes.</p>
|
||||
|
||||
<p><b>hdrcharset</b></p>
|
||||
|
||||
<p style="margin-left:27%;">The value is used as a
|
||||
character set name that will be used when translating file
|
||||
names.</p>
|
||||
|
||||
<p><b>zip64</b></p>
|
||||
|
||||
<p style="margin-left:27%; margin-top: 1em">Zip64
|
||||
extensions provide additional file size information for
|
||||
entries larger than 4 GiB. They also provide extended file
|
||||
offset and archive size information when archives exceed 4
|
||||
GiB. By default, the Zip writer selectively enables these
|
||||
extensions only as needed. In particular, if the file size
|
||||
is unknown, the Zip writer will include Zip64 extensions to
|
||||
guard against the possibility that the file might be larger
|
||||
than 4 GiB.</p>
|
||||
|
||||
<p style="margin-left:27%; margin-top: 1em">Setting this
|
||||
boolean option will force the writer to use Zip64 extensions
|
||||
even for small files that would not otherwise require them.
|
||||
This is primarily useful for testing.</p>
|
||||
|
||||
<p style="margin-left:27%; margin-top: 1em">Disabling this
|
||||
option with <b>!zip64</b> will force the Zip writer to avoid
|
||||
Zip64 extensions: It will reject files with size greater
|
||||
than 4 GiB, it will reject any new entries once the total
|
||||
archive size reaches 4 GiB, and it will not use Zip64
|
||||
extensions for files with unknown size. In particular, this
|
||||
can improve compatibility when generating archives where the
|
||||
entry sizes are not known in advance.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>EXAMPLES</b></p>
|
||||
|
||||
<p style="margin-left:6%;">The following example creates an
|
||||
archive write handle to create a gzip-compressed ISO9660
|
||||
format image. The two options here specify that the ISO9660
|
||||
archive will use <i>kernel.img</i> as the boot image for El
|
||||
Torito booting, and that the gzip compressor should use the
|
||||
maximum compression level.</p>
|
||||
|
||||
<p style="margin-left:14%; margin-top: 1em">a =
|
||||
archive_write_new(); <br>
|
||||
archive_write_add_filter_gzip(a); <br>
|
||||
archive_write_set_format_iso9660(a); <br>
|
||||
archive_write_set_options(a,
|
||||
"boot=kernel.img,compression=9"); <br>
|
||||
archive_write_open_filename(a, filename, blocksize);</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>ERRORS</b></p>
|
||||
|
||||
<p style="margin-left:6%;">More detailed error codes and
|
||||
textual descriptions are available from the
|
||||
<b>archive_errno</b>() and <b>archive_error_string</b>()
|
||||
functions.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SEE ALSO</b></p>
|
||||
|
||||
<p style="margin-left:6%;">tar(1),
|
||||
archive_read_set_options(3), archive_write(3),
|
||||
libarchive(3)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>HISTORY</b></p>
|
||||
|
||||
<p style="margin-left:6%;">The <b>libarchive</b> library
|
||||
first appeared in FreeBSD 5.3.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>AUTHORS</b></p>
|
||||
|
||||
<p style="margin-left:6%;">The options support for
|
||||
libarchive was originally implemented by Michihiro
|
||||
NAKAJIMA.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>BUGS</b></p>
|
||||
|
||||
<p style="margin-left:6%;">BSD January 31, 2020
|
||||
BSD</p>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
82
dependencies/libarchive-3.4.2/doc/html/archive_write_set_passphrase.3.html
vendored
Normal file
82
dependencies/libarchive-3.4.2/doc/html/archive_write_set_passphrase.3.html
vendored
Normal file
|
@ -0,0 +1,82 @@
|
|||
<!-- Creator : groff version 1.22.3 -->
|
||||
<!-- CreationDate: Tue Feb 11 22:58:46 2020 -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="groff -Thtml, see www.gnu.org">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<meta name="Content-Style" content="text/css">
|
||||
<style type="text/css">
|
||||
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
h1 { text-align: center }
|
||||
</style>
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<p>ARCHIVE_WRITE_SET_PAS... BSD Library Functions Manual
|
||||
ARCHIVE_WRITE_SET_PAS...</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>NAME</b></p>
|
||||
|
||||
|
||||
<p style="margin-left:6%;"><b>archive_write_set_passphrase</b>,
|
||||
<b>archive_write_set_passphrase_callback</b> —
|
||||
functions for writing encrypted archives</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>LIBRARY</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Streaming Archive Library
|
||||
(libarchive, -larchive)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SYNOPSIS</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>#include
|
||||
<archive.h></b></p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p><b>archive_write_set_passphrase</b>(<i>struct archive *</i>,
|
||||
<i>const char *passphrase</i>);</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><i>int</i></p>
|
||||
|
||||
|
||||
<p><b>archive_write_set_passphrase_callback</b>(<i>struct archive *</i>,
|
||||
<i>void *client_data</i>,
|
||||
<i>archive_passphrase_callback *</i>);</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>DESCRIPTION <br>
|
||||
archive_write_set_passphrase</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Set a passphrase for writing an
|
||||
encrypted archive. If <i>passphrase</i> is NULL or empty,
|
||||
this function will do nothing and <b>ARCHIVE_FAILED</b> will
|
||||
be returned. Otherwise, <b>ARCHIVE_OK</b> will be
|
||||
returned.</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_write_set_passphrase_callback</b>()</p>
|
||||
|
||||
<p style="margin-left:17%;">Register a callback function
|
||||
that will be invoked to get a passphrase for encryption if
|
||||
the passphrase was not set by the
|
||||
<b>archive_write_set_passphrase</b>() function.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SEE ALSO</b></p>
|
||||
|
||||
<p style="margin-left:6%;">tar(1), archive_write(3),
|
||||
archive_write_set_options(3), libarchive(3)</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">BSD
|
||||
September 21, 2014 BSD</p>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
512
dependencies/libarchive-3.4.2/doc/html/bsdcpio.1.html
vendored
Normal file
512
dependencies/libarchive-3.4.2/doc/html/bsdcpio.1.html
vendored
Normal file
|
@ -0,0 +1,512 @@
|
|||
<!-- Creator : groff version 1.22.3 -->
|
||||
<!-- CreationDate: Tue Feb 11 22:58:47 2020 -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="groff -Thtml, see www.gnu.org">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<meta name="Content-Style" content="text/css">
|
||||
<style type="text/css">
|
||||
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
h1 { text-align: center }
|
||||
</style>
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<p>CPIO(1) BSD General Commands Manual CPIO(1)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>NAME</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>cpio</b> — copy files
|
||||
to and from archives</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SYNOPSIS</b></p>
|
||||
|
||||
<p style="margin-left:13%;"><b>cpio -i</b> [<i>options</i>]
|
||||
[<i>pattern ...</i>] [<i>< archive</i>] <b><br>
|
||||
cpio -o</b> [<i>options</i>] <i>< name-list</i>
|
||||
[<i>> archive</i>] <b><br>
|
||||
cpio -p</b> [<i>options</i>] <i>dest-dir <
|
||||
name-list</i></p>
|
||||
|
||||
<p style="margin-top: 1em"><b>DESCRIPTION</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>cpio</b> copies files between
|
||||
archives and directories. This implementation can extract
|
||||
from tar, pax, cpio, zip, jar, ar, and ISO 9660 cdrom images
|
||||
and can create tar, pax, cpio, ar, and shar archives.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The first option
|
||||
to <b>cpio</b> is a mode indicator from the following
|
||||
list:</p>
|
||||
|
||||
<p><b>-i</b></p>
|
||||
|
||||
<p style="margin-left:17%; margin-top: 1em">Input. Read an
|
||||
archive from standard input (unless overridden) and extract
|
||||
the contents to disk or (if the <b>-t</b> option is
|
||||
specified) list the contents to standard output. If one or
|
||||
more file patterns are specified, only files matching one of
|
||||
the patterns will be extracted.</p>
|
||||
|
||||
<p><b>-o</b></p>
|
||||
|
||||
<p style="margin-left:17%; margin-top: 1em">Output. Read a
|
||||
list of filenames from standard input and produce a new
|
||||
archive on standard output (unless overridden) containing
|
||||
the specified items.</p>
|
||||
|
||||
<p><b>-p</b></p>
|
||||
|
||||
<p style="margin-left:17%; margin-top: 1em">Pass-through.
|
||||
Read a list of filenames from standard input and copy the
|
||||
files to the specified directory.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>OPTIONS</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Unless specifically stated
|
||||
otherwise, options are applicable in all operating
|
||||
modes.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>-0</b>, <b>--null</b></p>
|
||||
|
||||
<p style="margin-left:17%;">Read filenames separated by NUL
|
||||
characters instead of newlines. This is necessary if any of
|
||||
the filenames being read might contain newlines.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>-A</b></p>
|
||||
|
||||
<p style="margin-left:17%; margin-top: 1em">(o mode only)
|
||||
Append to the specified archive. (Not yet implemented.)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>-a</b></p>
|
||||
|
||||
<p style="margin-left:17%; margin-top: 1em">(o and p modes)
|
||||
Reset access times on files after they are read.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>-B</b></p>
|
||||
|
||||
<p style="margin-left:17%; margin-top: 1em">(o mode only)
|
||||
Block output to records of 5120 bytes.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>-C</b> <i>size</i></p>
|
||||
|
||||
<p style="margin-left:17%;">(o mode only) Block output to
|
||||
records of <i>size</i> bytes.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>-c</b></p>
|
||||
|
||||
<p style="margin-left:17%; margin-top: 1em">(o mode only)
|
||||
Use the old POSIX portable character format. Equivalent to
|
||||
<b>--format</b> <i>odc</i>.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>-d</b>,
|
||||
<b>--make-directories</b></p>
|
||||
|
||||
<p style="margin-left:17%;">(i and p modes) Create
|
||||
directories as necessary.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>-E</b> <i>file</i></p>
|
||||
|
||||
<p style="margin-left:17%;">(i mode only) Read list of file
|
||||
name patterns from <i>file</i> to list and extract.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>-F</b> <i>file</i>,
|
||||
<b>--file</b> <i>file</i></p>
|
||||
|
||||
<p style="margin-left:17%;">Read archive from or write
|
||||
archive to <i>file</i>.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>-f</b> <i>pattern</i></p>
|
||||
|
||||
<p style="margin-left:17%;">(i mode only) Ignore files that
|
||||
match <i>pattern</i>.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>-H</b> <i>format</i>,
|
||||
<b>--format</b> <i>format</i></p>
|
||||
|
||||
<p style="margin-left:17%;">(o mode only) Produce the
|
||||
output archive in the specified format. Supported formats
|
||||
include:</p>
|
||||
|
||||
<p style="margin-top: 1em"><i>cpio</i></p>
|
||||
|
||||
<p style="margin-left:28%; margin-top: 1em">Synonym for
|
||||
<i>odc</i>.</p>
|
||||
|
||||
<p><i>newc</i></p>
|
||||
|
||||
<p style="margin-left:28%; margin-top: 1em">The SVR4
|
||||
portable cpio format.</p>
|
||||
|
||||
<p><i>odc</i></p>
|
||||
|
||||
<p style="margin-left:28%; margin-top: 1em">The old POSIX.1
|
||||
portable octet-oriented cpio format.</p>
|
||||
|
||||
<p><i>pax</i></p>
|
||||
|
||||
<p style="margin-left:28%; margin-top: 1em">The POSIX.1 pax
|
||||
format, an extension of the ustar format.</p>
|
||||
|
||||
<p><i>ustar</i></p>
|
||||
|
||||
<p style="margin-left:28%; margin-top: 1em">The POSIX.1 tar
|
||||
format.</p>
|
||||
|
||||
<p style="margin-left:17%; margin-top: 1em">The default
|
||||
format is <i>odc</i>. See libarchive-formats(5) for more
|
||||
complete information about the formats currently supported
|
||||
by the underlying libarchive(3) library.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>-h</b>, <b>--help</b></p>
|
||||
|
||||
<p style="margin-left:17%;">Print usage information.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>-I</b> <i>file</i></p>
|
||||
|
||||
<p style="margin-left:17%;">Read archive from
|
||||
<i>file</i>.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>-i</b>, <b>--extract</b></p>
|
||||
|
||||
<p style="margin-left:17%;">Input mode. See above for
|
||||
description.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>--insecure</b></p>
|
||||
|
||||
<p style="margin-left:17%;">(i and p mode only) Disable
|
||||
security checks during extraction or copying. This allows
|
||||
extraction via symbolic links, absolute paths, and path
|
||||
names containing ’..’ in the name.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>-J</b>, <b>--xz</b></p>
|
||||
|
||||
<p style="margin-left:17%;">(o mode only) Compress the file
|
||||
with xz-compatible compression before writing it. In input
|
||||
mode, this option is ignored; xz compression is recognized
|
||||
automatically on input.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>-j</b></p>
|
||||
|
||||
<p style="margin-left:17%; margin-top: 1em">Synonym for
|
||||
<b>-y</b>.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>-L</b></p>
|
||||
|
||||
<p style="margin-left:17%; margin-top: 1em">(o and p modes)
|
||||
All symbolic links will be followed. Normally, symbolic
|
||||
links are archived and copied as symbolic links. With this
|
||||
option, the target of the link will be archived or copied
|
||||
instead.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>-l</b>, <b>--link</b></p>
|
||||
|
||||
<p style="margin-left:17%;">(p mode only) Create links from
|
||||
the target directory to the original files, instead of
|
||||
copying.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>--lrzip</b></p>
|
||||
|
||||
<p style="margin-left:17%;">(o mode only) Compress the
|
||||
resulting archive with lrzip(1). In input mode, this option
|
||||
is ignored.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>--lz4</b></p>
|
||||
|
||||
<p style="margin-left:17%; margin-top: 1em">(o mode only)
|
||||
Compress the archive with lz4-compatible compression before
|
||||
writing it. In input mode, this option is ignored; lz4
|
||||
compression is recognized automatically on input.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>--zstd</b></p>
|
||||
|
||||
<p style="margin-left:17%; margin-top: 1em">(o mode only)
|
||||
Compress the archive with zstd-compatible compression before
|
||||
writing it. In input mode, this option is ignored; zstd
|
||||
compression is recognized automatically on input.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>--lzma</b></p>
|
||||
|
||||
<p style="margin-left:17%; margin-top: 1em">(o mode only)
|
||||
Compress the file with lzma-compatible compression before
|
||||
writing it. In input mode, this option is ignored; lzma
|
||||
compression is recognized automatically on input.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>--lzop</b></p>
|
||||
|
||||
<p style="margin-left:17%; margin-top: 1em">(o mode only)
|
||||
Compress the resulting archive with lzop(1). In input mode,
|
||||
this option is ignored.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>--passphrase</b>
|
||||
<i>passphrase</i></p>
|
||||
|
||||
<p style="margin-left:17%;">The <i>passphrase</i> is used
|
||||
to extract or create an encrypted archive. Currently, zip is
|
||||
only a format that <b>cpio</b> can handle encrypted
|
||||
archives. You shouldn’t use this option unless you
|
||||
realize how insecure use of this option is.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>-m</b>,
|
||||
<b>--preserve-modification-time</b></p>
|
||||
|
||||
<p style="margin-left:17%;">(i and p modes) Set file
|
||||
modification time on created files to match those in the
|
||||
source.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>-n</b>,
|
||||
<b>--numeric-uid-gid</b></p>
|
||||
|
||||
<p style="margin-left:17%;">(i mode, only with <b>-t</b>)
|
||||
Display numeric uid and gid. By default, <b>cpio</b>
|
||||
displays the user and group names when they are provided in
|
||||
the archive, or looks up the user and group names in the
|
||||
system password database.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>--no-preserve-owner</b></p>
|
||||
|
||||
<p style="margin-left:17%;">(i mode only) Do not attempt to
|
||||
restore file ownership. This is the default when run by
|
||||
non-root users.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>-O</b> <i>file</i></p>
|
||||
|
||||
<p style="margin-left:17%;">Write archive to
|
||||
<i>file</i>.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>-o</b>, <b>--create</b></p>
|
||||
|
||||
<p style="margin-left:17%;">Output mode. See above for
|
||||
description.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>-p</b>,
|
||||
<b>--pass-through</b></p>
|
||||
|
||||
<p style="margin-left:17%;">Pass-through mode. See above
|
||||
for description.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>--preserve-owner</b></p>
|
||||
|
||||
<p style="margin-left:17%;">(i mode only) Restore file
|
||||
ownership. This is the default when run by the root
|
||||
user.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>--quiet</b></p>
|
||||
|
||||
<p style="margin-left:17%;">Suppress unnecessary
|
||||
messages.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>-R</b> [ <br>
|
||||
user][ <br>
|
||||
:][ <br>
|
||||
group], <b>--owner</b> [ <br>
|
||||
user][ <br>
|
||||
:][ <br>
|
||||
group]</p>
|
||||
|
||||
<p style="margin-left:17%;">Set the owner and/or group on
|
||||
files in the output. If group is specified with no user (for
|
||||
example, <b>-R</b> <i>:wheel</i>) then the group will be set
|
||||
but not the user. If the user is specified with a trailing
|
||||
colon and no group (for example, <b>-R</b> <i>root:</i>)
|
||||
then the group will be set to the user’s default
|
||||
group. If the user is specified with no trailing colon, then
|
||||
the user will be set but not the group. In <b>-i</b> and
|
||||
<b>-p</b> modes, this option can only be used by the
|
||||
super-user. (For compatibility, a period can be used in
|
||||
place of the colon.)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>-r</b></p>
|
||||
|
||||
<p style="margin-left:17%; margin-top: 1em">(All modes.)
|
||||
Rename files interactively. For each file, a prompt is
|
||||
written to <i>/dev/tty</i> containing the name of the file
|
||||
and a line is read from <i>/dev/tty</i>. If the line read is
|
||||
blank, the file is skipped. If the line contains a single
|
||||
period, the file is processed normally. Otherwise, the line
|
||||
is taken to be the new name of the file.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>-t</b>, <b>--list</b></p>
|
||||
|
||||
<p style="margin-left:17%;">(i mode only) List the contents
|
||||
of the archive to stdout; do not restore the contents to
|
||||
disk.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>-u</b>,
|
||||
<b>--unconditional</b></p>
|
||||
|
||||
<p style="margin-left:17%;">(i and p modes) Unconditionally
|
||||
overwrite existing files. Ordinarily, an older file will not
|
||||
overwrite a newer file on disk.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>-V</b>, <b>--dot</b></p>
|
||||
|
||||
<p style="margin-left:17%;">Print a dot to stderr for each
|
||||
file as it is processed. Superseded by <b>-v</b>.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>-v</b>, <b>--verbose</b></p>
|
||||
|
||||
<p style="margin-left:17%;">Print the name of each file to
|
||||
stderr as it is processed. With <b>-t</b>, provide a
|
||||
detailed listing of each file.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>--version</b></p>
|
||||
|
||||
<p style="margin-left:17%;">Print the program version
|
||||
information and exit.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>-y</b></p>
|
||||
|
||||
<p style="margin-left:17%; margin-top: 1em">(o mode only)
|
||||
Compress the archive with bzip2-compatible compression
|
||||
before writing it. In input mode, this option is ignored;
|
||||
bzip2 compression is recognized automatically on input.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>-Z</b></p>
|
||||
|
||||
<p style="margin-left:17%; margin-top: 1em">(o mode only)
|
||||
Compress the archive with compress-compatible compression
|
||||
before writing it. In input mode, this option is ignored;
|
||||
compression is recognized automatically on input.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>-z</b></p>
|
||||
|
||||
<p style="margin-left:17%; margin-top: 1em">(o mode only)
|
||||
Compress the archive with gzip-compatible compression before
|
||||
writing it. In input mode, this option is ignored; gzip
|
||||
compression is recognized automatically on input.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>EXIT STATUS</b></p>
|
||||
|
||||
<p style="margin-left:6%;">The <b>cpio</b> utility
|
||||
exits 0 on success, and >0 if an error
|
||||
occurs.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>ENVIRONMENT</b></p>
|
||||
|
||||
<p style="margin-left:6%;">The following environment
|
||||
variables affect the execution of <b>cpio</b>:</p>
|
||||
|
||||
<p style="margin-top: 1em">LANG</p>
|
||||
|
||||
<p style="margin-left:21%; margin-top: 1em">The locale to
|
||||
use. See environ(7) for more information.</p>
|
||||
|
||||
<p style="margin-top: 1em">TZ</p>
|
||||
|
||||
<p style="margin-left:21%; margin-top: 1em">The timezone to
|
||||
use when displaying dates. See environ(7) for more
|
||||
information.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>EXAMPLES</b></p>
|
||||
|
||||
<p style="margin-left:6%;">The <b>cpio</b> command is
|
||||
traditionally used to copy file hierarchies in conjunction
|
||||
with the find(1) command. The first example here simply
|
||||
copies all files from <i>src</i> to <i>dest</i>:</p>
|
||||
|
||||
<p style="margin-left:14%;"><b>find</b> <i>src</i> |
|
||||
<b>cpio -pmud</b> <i>dest</i></p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">By carefully
|
||||
selecting options to the find(1) command and combining it
|
||||
with other standard utilities, it is possible to exercise
|
||||
very fine control over which files are copied. This next
|
||||
example copies files from <i>src</i> to <i>dest</i> that are
|
||||
more than 2 days old and whose names match a particular
|
||||
pattern:</p>
|
||||
|
||||
<p style="margin-left:14%;"><b>find</b> <i>src</i>
|
||||
<b>-mtime</b> <i>+2</i> | <b>grep foo[bar]</b> | <b>cpio
|
||||
-pdmu</b> <i>dest</i></p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">This example
|
||||
copies files from <i>src</i> to <i>dest</i> that are more
|
||||
than 2 days old and which contain the word
|
||||
’’</p>
|
||||
|
||||
<p>foobar ’’:</p>
|
||||
|
||||
<p style="margin-left:14%;"><b>find</b> <i>src</i>
|
||||
<b>-mtime</b> <i>+2</i> | <b>xargs grep -l foobar</b> |
|
||||
<b>cpio -pdmu</b> <i>dest</i></p>
|
||||
|
||||
<p style="margin-top: 1em"><b>COMPATIBILITY</b></p>
|
||||
|
||||
<p style="margin-left:6%;">The mode options i, o, and p and
|
||||
the options a, B, c, d, f, l, m, r, t, u, and v comply with
|
||||
SUSv2.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The old POSIX.1
|
||||
standard specified that only <b>-i</b>, <b>-o</b>, and
|
||||
<b>-p</b> were interpreted as command-line options. Each
|
||||
took a single argument of a list of modifier characters. For
|
||||
example, the standard syntax allows <b>-imu</b> but does not
|
||||
support <b>-miu</b> or <b>-i -m -u</b>, since <i>m</i> and
|
||||
<i>u</i> are only modifiers to <b>-i</b>, they are not
|
||||
command-line options in their own right. The syntax
|
||||
supported by this implementation is backwards-compatible
|
||||
with the standard. For best compatibility, scripts should
|
||||
limit themselves to the standard syntax.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SEE ALSO</b></p>
|
||||
|
||||
<p style="margin-left:6%;">bzip2(1), gzip(1), mt(1),
|
||||
pax(1), tar(1), libarchive(3), cpio(5),
|
||||
libarchive-formats(5), tar(5)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>STANDARDS</b></p>
|
||||
|
||||
<p style="margin-left:6%;">There is no current POSIX
|
||||
standard for the cpio command; it appeared in ISO/IEC
|
||||
9945-1:1996 (’’POSIX.1’’) but was
|
||||
dropped from IEEE Std 1003.1-2001
|
||||
(’’POSIX.1’’).</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The cpio, ustar,
|
||||
and pax interchange file formats are defined by IEEE Std
|
||||
1003.1-2001 (’’POSIX.1’’) for the
|
||||
pax command.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>HISTORY</b></p>
|
||||
|
||||
<p style="margin-left:6%;">The original <b>cpio</b> and
|
||||
<b>find</b> utilities were written by Dick Haight while
|
||||
working in AT&T’s Unix Support Group. They first
|
||||
appeared in 1977 in PWB/UNIX 1.0, the
|
||||
’’Programmer’s Work Bench’’
|
||||
system developed for use within AT&T. They were first
|
||||
released outside of AT&T as part of System III Unix in
|
||||
1981. As a result, <b>cpio</b> actually predates <b>tar</b>,
|
||||
even though it was not well-known outside of AT&T until
|
||||
some time later.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">This is a
|
||||
complete re-implementation based on the libarchive(3)
|
||||
library.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>BUGS</b></p>
|
||||
|
||||
<p style="margin-left:6%;">The cpio archive format has
|
||||
several basic limitations: It does not store user and group
|
||||
names, only numbers. As a result, it cannot be reliably used
|
||||
to transfer files between systems with dissimilar user and
|
||||
group numbering. Older cpio formats limit the user and group
|
||||
numbers to 16 or 18 bits, which is insufficient for modern
|
||||
systems. The cpio archive formats cannot support files over
|
||||
4 gigabytes, except for the ’’odc’’
|
||||
variant, which can support files up to 8 gigabytes.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">BSD
|
||||
September 16, 2014 BSD</p>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
1390
dependencies/libarchive-3.4.2/doc/html/bsdtar.1.html
vendored
Normal file
1390
dependencies/libarchive-3.4.2/doc/html/bsdtar.1.html
vendored
Normal file
File diff suppressed because it is too large
Load diff
415
dependencies/libarchive-3.4.2/doc/html/cpio.5.html
vendored
Normal file
415
dependencies/libarchive-3.4.2/doc/html/cpio.5.html
vendored
Normal file
|
@ -0,0 +1,415 @@
|
|||
<!-- Creator : groff version 1.22.3 -->
|
||||
<!-- CreationDate: Tue Feb 11 22:58:46 2020 -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="groff -Thtml, see www.gnu.org">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<meta name="Content-Style" content="text/css">
|
||||
<style type="text/css">
|
||||
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
h1 { text-align: center }
|
||||
</style>
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<p>CPIO(5) BSD File Formats Manual CPIO(5)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>NAME</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>cpio</b> — format of
|
||||
cpio archive files</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>DESCRIPTION</b></p>
|
||||
|
||||
<p style="margin-left:6%;">The <b>cpio</b> archive format
|
||||
collects any number of files, directories, and other file
|
||||
system objects (symbolic links, device nodes, etc.) into a
|
||||
single stream of bytes.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>General
|
||||
Format</b> <br>
|
||||
Each file system object in a <b>cpio</b> archive comprises a
|
||||
header record with basic numeric metadata followed by the
|
||||
full pathname of the entry and the file data. The header
|
||||
record stores a series of integer values that generally
|
||||
follow the fields in <i>struct stat</i>. (See stat(2) for
|
||||
details.) The variants differ primarily in how they store
|
||||
those integers (binary, octal, or hexadecimal). The header
|
||||
is followed by the pathname of the entry (the length of the
|
||||
pathname is stored in the header) and any file data. The end
|
||||
of the archive is indicated by a special record with the
|
||||
pathname ’’TRAILER!!!’’.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>PWB
|
||||
format</b> <br>
|
||||
XXX Any documentation of the original PWB/UNIX 1.0 format?
|
||||
XXX</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>Old Binary
|
||||
Format</b> <br>
|
||||
The old binary <b>cpio</b> format stores numbers as 2-byte
|
||||
and 4-byte binary values. Each entry begins with a header in
|
||||
the following format:</p>
|
||||
|
||||
<p style="margin-left:14%; margin-top: 1em">struct
|
||||
header_old_cpio { <br>
|
||||
unsigned short c_magic; <br>
|
||||
unsigned short c_dev; <br>
|
||||
unsigned short c_ino; <br>
|
||||
unsigned short c_mode; <br>
|
||||
unsigned short c_uid; <br>
|
||||
unsigned short c_gid; <br>
|
||||
unsigned short c_nlink; <br>
|
||||
unsigned short c_rdev;</p>
|
||||
|
||||
<table width="100%" border="0" rules="none" frame="void"
|
||||
cellspacing="0" cellpadding="0">
|
||||
<tr valign="top" align="left">
|
||||
<td width="24%"></td>
|
||||
<td width="11%">
|
||||
|
||||
|
||||
<p>unsigned short c_mtime[2];</p></td>
|
||||
<td width="65%">
|
||||
</td></tr>
|
||||
</table>
|
||||
|
||||
<p style="margin-left:14%;">unsigned short c_namesize;</p>
|
||||
|
||||
<table width="100%" border="0" rules="none" frame="void"
|
||||
cellspacing="0" cellpadding="0">
|
||||
<tr valign="top" align="left">
|
||||
<td width="24%"></td>
|
||||
<td width="76%">
|
||||
|
||||
|
||||
<p>unsigned short c_filesize[2];</p></td></tr>
|
||||
</table>
|
||||
|
||||
<p style="margin-left:14%;">};</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The <i>unsigned
|
||||
short</i> fields here are 16-bit integer values; the
|
||||
<i>unsigned int</i> fields are 32-bit integer values. The
|
||||
fields are as follows</p>
|
||||
|
||||
<p style="margin-top: 1em"><i>magic</i></p>
|
||||
|
||||
<p style="margin-left:17%; margin-top: 1em">The integer
|
||||
value octal 070707. This value can be used to determine
|
||||
whether this archive is written with little-endian or
|
||||
big-endian integers.</p>
|
||||
|
||||
<p style="margin-top: 1em"><i>dev</i>, <i>ino</i></p>
|
||||
|
||||
<p style="margin-left:17%;">The device and inode numbers
|
||||
from the disk. These are used by programs that read
|
||||
<b>cpio</b> archives to determine when two entries refer to
|
||||
the same file. Programs that synthesize <b>cpio</b> archives
|
||||
should be careful to set these to distinct values for each
|
||||
entry.</p>
|
||||
|
||||
<p style="margin-top: 1em"><i>mode</i></p>
|
||||
|
||||
<p style="margin-left:17%; margin-top: 1em">The mode
|
||||
specifies both the regular permissions and the file type. It
|
||||
consists of several bit fields as follows:</p>
|
||||
|
||||
<p>0170000</p>
|
||||
|
||||
<p style="margin-left:28%; margin-top: 1em">This masks the
|
||||
file type bits.</p>
|
||||
|
||||
<p>0140000</p>
|
||||
|
||||
<p style="margin-left:28%; margin-top: 1em">File type value
|
||||
for sockets.</p>
|
||||
|
||||
<p>0120000</p>
|
||||
|
||||
<p style="margin-left:28%; margin-top: 1em">File type value
|
||||
for symbolic links. For symbolic links, the link body is
|
||||
stored as file data.</p>
|
||||
|
||||
<p>0100000</p>
|
||||
|
||||
<p style="margin-left:28%; margin-top: 1em">File type value
|
||||
for regular files.</p>
|
||||
|
||||
<p>0060000</p>
|
||||
|
||||
<p style="margin-left:28%; margin-top: 1em">File type value
|
||||
for block special devices.</p>
|
||||
|
||||
<p>0040000</p>
|
||||
|
||||
<p style="margin-left:28%; margin-top: 1em">File type value
|
||||
for directories.</p>
|
||||
|
||||
<p>0020000</p>
|
||||
|
||||
<p style="margin-left:28%; margin-top: 1em">File type value
|
||||
for character special devices.</p>
|
||||
|
||||
<p>0010000</p>
|
||||
|
||||
<p style="margin-left:28%; margin-top: 1em">File type value
|
||||
for named pipes or FIFOs.</p>
|
||||
|
||||
<p>0004000</p>
|
||||
|
||||
<p style="margin-left:28%; margin-top: 1em">SUID bit.</p>
|
||||
|
||||
<p>0002000</p>
|
||||
|
||||
<p style="margin-left:28%; margin-top: 1em">SGID bit.</p>
|
||||
|
||||
<p>0001000</p>
|
||||
|
||||
<p style="margin-left:28%; margin-top: 1em">Sticky bit. On
|
||||
some systems, this modifies the behavior of executables
|
||||
and/or directories.</p>
|
||||
|
||||
<p>0000777</p>
|
||||
|
||||
<p style="margin-left:28%; margin-top: 1em">The lower 9
|
||||
bits specify read/write/execute permissions for world,
|
||||
group, and user following standard POSIX conventions.</p>
|
||||
|
||||
<p style="margin-top: 1em"><i>uid</i>, <i>gid</i></p>
|
||||
|
||||
<p style="margin-left:17%;">The numeric user id and group
|
||||
id of the owner.</p>
|
||||
|
||||
<p style="margin-top: 1em"><i>nlink</i></p>
|
||||
|
||||
<p style="margin-left:17%; margin-top: 1em">The number of
|
||||
links to this file. Directories always have a value of at
|
||||
least two here. Note that hardlinked files include file data
|
||||
with every copy in the archive.</p>
|
||||
|
||||
<p style="margin-top: 1em"><i>rdev</i></p>
|
||||
|
||||
<p style="margin-left:17%; margin-top: 1em">For block
|
||||
special and character special entries, this field contains
|
||||
the associated device number. For all other entry types, it
|
||||
should be set to zero by writers and ignored by readers.</p>
|
||||
|
||||
<p style="margin-top: 1em"><i>mtime</i></p>
|
||||
|
||||
<p style="margin-left:17%; margin-top: 1em">Modification
|
||||
time of the file, indicated as the number of seconds since
|
||||
the start of the epoch, 00:00:00 UTC January 1, 1970. The
|
||||
four-byte integer is stored with the most-significant 16
|
||||
bits first followed by the least-significant 16 bits. Each
|
||||
of the two 16 bit values are stored in machine-native byte
|
||||
order.</p>
|
||||
|
||||
<p style="margin-top: 1em"><i>namesize</i></p>
|
||||
|
||||
<p style="margin-left:17%;">The number of bytes in the
|
||||
pathname that follows the header. This count includes the
|
||||
trailing NUL byte.</p>
|
||||
|
||||
<p style="margin-top: 1em"><i>filesize</i></p>
|
||||
|
||||
<p style="margin-left:17%;">The size of the file. Note that
|
||||
this archive format is limited to four gigabyte file sizes.
|
||||
See <i>mtime</i> above for a description of the storage of
|
||||
four-byte integers.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The pathname
|
||||
immediately follows the fixed header. If the <b>namesize</b>
|
||||
is odd, an additional NUL byte is added after the pathname.
|
||||
The file data is then appended, padded with NUL bytes to an
|
||||
even length.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">Hardlinked files
|
||||
are not given special treatment; the full file contents are
|
||||
included with each copy of the file.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>Portable
|
||||
ASCII Format</b> <br>
|
||||
Version 2 of the Single UNIX Specification
|
||||
(’’SUSv2’’) standardized an ASCII
|
||||
variant that is portable across all platforms. It is
|
||||
commonly known as the ’’old
|
||||
character’’ format or as the
|
||||
’’odc’’ format. It stores the same
|
||||
numeric fields as the old binary format, but represents them
|
||||
as 6-character or 11-character octal values.</p>
|
||||
|
||||
<p style="margin-left:14%; margin-top: 1em">struct
|
||||
cpio_odc_header { <br>
|
||||
char c_magic[6]; <br>
|
||||
char c_dev[6]; <br>
|
||||
char c_ino[6]; <br>
|
||||
char c_mode[6]; <br>
|
||||
char c_uid[6]; <br>
|
||||
char c_gid[6]; <br>
|
||||
char c_nlink[6]; <br>
|
||||
char c_rdev[6]; <br>
|
||||
char c_mtime[11]; <br>
|
||||
char c_namesize[6]; <br>
|
||||
char c_filesize[11]; <br>
|
||||
};</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The fields are
|
||||
identical to those in the old binary format. The name and
|
||||
file body follow the fixed header. Unlike the old binary
|
||||
format, there is no additional padding after the pathname or
|
||||
file contents. If the files being archived are themselves
|
||||
entirely ASCII, then the resulting archive will be entirely
|
||||
ASCII, except for the NUL byte that terminates the name
|
||||
field.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>New ASCII
|
||||
Format</b> <br>
|
||||
The "new" ASCII format uses 8-byte hexadecimal
|
||||
fields for all numbers and separates device numbers into
|
||||
separate fields for major and minor numbers.</p>
|
||||
|
||||
<p style="margin-left:14%; margin-top: 1em">struct
|
||||
cpio_newc_header { <br>
|
||||
char c_magic[6]; <br>
|
||||
char c_ino[8]; <br>
|
||||
char c_mode[8]; <br>
|
||||
char c_uid[8]; <br>
|
||||
char c_gid[8]; <br>
|
||||
char c_nlink[8]; <br>
|
||||
char c_mtime[8]; <br>
|
||||
char c_filesize[8]; <br>
|
||||
char c_devmajor[8]; <br>
|
||||
char c_devminor[8]; <br>
|
||||
char c_rdevmajor[8]; <br>
|
||||
char c_rdevminor[8]; <br>
|
||||
char c_namesize[8]; <br>
|
||||
char c_check[8]; <br>
|
||||
};</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">Except as
|
||||
specified below, the fields here match those specified for
|
||||
the old binary format above.</p>
|
||||
|
||||
<p style="margin-top: 1em"><i>magic</i></p>
|
||||
|
||||
<p style="margin-left:17%; margin-top: 1em">The string
|
||||
’’070701’’.</p>
|
||||
|
||||
<p style="margin-top: 1em"><i>check</i></p>
|
||||
|
||||
<p style="margin-left:17%; margin-top: 1em">This field is
|
||||
always set to zero by writers and ignored by readers. See
|
||||
the next section for more details.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The pathname is
|
||||
followed by NUL bytes so that the total size of the fixed
|
||||
header plus pathname is a multiple of four. Likewise, the
|
||||
file data is padded to a multiple of four bytes. Note that
|
||||
this format supports only 4 gigabyte files (unlike the older
|
||||
ASCII format, which supports 8 gigabyte files).</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">In this format,
|
||||
hardlinked files are handled by setting the filesize to zero
|
||||
for each entry except the last one that appears in the
|
||||
archive.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>New CRC
|
||||
Format</b> <br>
|
||||
The CRC format is identical to the new ASCII format
|
||||
described in the previous section except that the magic
|
||||
field is set to ’’070702’’ and the
|
||||
<i>check</i> field is set to the sum of all bytes in the
|
||||
file data. This sum is computed treating all bytes as
|
||||
unsigned values and using unsigned arithmetic. Only the
|
||||
least-significant 32 bits of the sum are stored.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>HP
|
||||
variants</b> <br>
|
||||
The <b>cpio</b> implementation distributed with HPUX used
|
||||
XXXX but stored device numbers differently XXX.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>Other
|
||||
Extensions and Variants</b> <br>
|
||||
Sun Solaris uses additional file types to store extended
|
||||
file data, including ACLs and extended attributes, as
|
||||
special entries in cpio archives.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">XXX Others?
|
||||
XXX</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SEE ALSO</b></p>
|
||||
|
||||
<p style="margin-left:6%;">cpio(1), tar(5)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>STANDARDS</b></p>
|
||||
|
||||
<p style="margin-left:6%;">The <b>cpio</b> utility is no
|
||||
longer a part of POSIX or the Single Unix Standard. It last
|
||||
appeared in Version 2 of the Single UNIX Specification
|
||||
(’’SUSv2’’). It has been supplanted
|
||||
in subsequent standards by pax(1). The portable ASCII format
|
||||
is currently part of the specification for the pax(1)
|
||||
utility.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>HISTORY</b></p>
|
||||
|
||||
<p style="margin-left:6%;">The original cpio utility was
|
||||
written by Dick Haight while working in AT&T’s
|
||||
Unix Support Group. It appeared in 1977 as part of PWB/UNIX
|
||||
1.0, the ’’Programmer’s Work
|
||||
Bench’’ derived from Version 6 AT&T
|
||||
UNIX that was used internally at AT&T. Both the old
|
||||
binary and old character formats were in use by 1980,
|
||||
according to the System III source released by SCO under
|
||||
their ’’Ancient Unix’’ license. The
|
||||
character format was adopted as part of IEEE Std 1003.1-1988
|
||||
(’’POSIX.1’’). XXX when did
|
||||
"newc" appear? Who invented it? When did HP come
|
||||
out with their variant? When did Sun introduce ACLs and
|
||||
extended attributes? XXX</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>BUGS</b></p>
|
||||
|
||||
<p style="margin-left:6%;">The
|
||||
’’CRC’’ format is mis-named, as it
|
||||
uses a simple checksum and not a cyclic redundancy
|
||||
check.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The old binary
|
||||
format is limited to 16 bits for user id, group id, device,
|
||||
and inode numbers. It is limited to 4 gigabyte file
|
||||
sizes.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The old ASCII
|
||||
format is limited to 18 bits for the user id, group id,
|
||||
device, and inode numbers. It is limited to 8 gigabyte file
|
||||
sizes.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The new ASCII
|
||||
format is limited to 4 gigabyte file sizes.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">None of the cpio
|
||||
formats store user or group names, which are essential when
|
||||
moving files between systems with dissimilar user or group
|
||||
numbering.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">Especially when
|
||||
writing older cpio variants, it may be necessary to map
|
||||
actual device/inode values to synthesized values that fit
|
||||
the available fields. With very large filesystems, this may
|
||||
be necessary even for the newer formats.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">BSD
|
||||
December 23, 2011 BSD</p>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
504
dependencies/libarchive-3.4.2/doc/html/libarchive-formats.5.html
vendored
Normal file
504
dependencies/libarchive-3.4.2/doc/html/libarchive-formats.5.html
vendored
Normal file
|
@ -0,0 +1,504 @@
|
|||
<!-- Creator : groff version 1.22.3 -->
|
||||
<!-- CreationDate: Tue Feb 11 22:58:46 2020 -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="groff -Thtml, see www.gnu.org">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<meta name="Content-Style" content="text/css">
|
||||
<style type="text/css">
|
||||
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
h1 { text-align: center }
|
||||
</style>
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<p>LIBARCHIVE-FORMATS(5) BSD File Formats Manual
|
||||
LIBARCHIVE-FORMATS(5)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>NAME</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>libarchive-formats</b>
|
||||
— archive formats supported by the libarchive
|
||||
library</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>DESCRIPTION</b></p>
|
||||
|
||||
<p style="margin-left:6%;">The libarchive(3) library reads
|
||||
and writes a variety of streaming archive formats. Generally
|
||||
speaking, all of these archive formats consist of a series
|
||||
of ’’entries’’. Each entry stores a
|
||||
single file system object, such as a file, directory, or
|
||||
symbolic link.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The following
|
||||
provides a brief description of each format supported by
|
||||
libarchive, with some information about recognized
|
||||
extensions or limitations of the current library support.
|
||||
Note that just because a format is supported by libarchive
|
||||
does not imply that a program that uses libarchive will
|
||||
support that format. Applications that use libarchive
|
||||
specify which formats they wish to support, though many
|
||||
programs do use libarchive convenience functions to enable
|
||||
all supported formats.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>Tar
|
||||
Formats</b> <br>
|
||||
The libarchive(3) library can read most tar archives. It can
|
||||
write POSIX-standard ’’ustar’’ and
|
||||
’’pax interchange’’ formats as well
|
||||
as v7 tar format and a subset of the legacy GNU tar
|
||||
format.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">All tar formats
|
||||
store each entry in one or more 512-byte records. The first
|
||||
record is used for file metadata, including filename,
|
||||
timestamp, and mode information, and the file data is stored
|
||||
in subsequent records. Later variants have extended this by
|
||||
either appropriating undefined areas of the header record,
|
||||
extending the header to multiple records, or by storing
|
||||
special entries that modify the interpretation of subsequent
|
||||
entries.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>gnutar</b></p>
|
||||
|
||||
<p style="margin-left:17%; margin-top: 1em">The
|
||||
libarchive(3) library can read most GNU-format tar archives.
|
||||
It currently supports the most popular GNU extensions,
|
||||
including modern long filename and linkname support, as well
|
||||
as atime and ctime data. The libarchive library does not
|
||||
support multi-volume archives, nor the old GNU long filename
|
||||
format. It can read GNU sparse file entries, including the
|
||||
new POSIX-based formats.</p>
|
||||
|
||||
<p style="margin-left:17%; margin-top: 1em">The
|
||||
libarchive(3) library can write GNU tar format, including
|
||||
long filename and linkname support, as well as atime and
|
||||
ctime data.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>pax</b></p>
|
||||
|
||||
<p style="margin-left:17%; margin-top: 1em">The
|
||||
libarchive(3) library can read and write POSIX-compliant pax
|
||||
interchange format archives. Pax interchange format archives
|
||||
are an extension of the older ustar format that adds a
|
||||
separate entry with additional attributes stored as
|
||||
key/value pairs immediately before each regular entry. The
|
||||
presence of these additional entries is the only difference
|
||||
between pax interchange format and the older ustar format.
|
||||
The extended attributes are of unlimited length and are
|
||||
stored as UTF-8 Unicode strings. Keywords defined in the
|
||||
standard are in all lowercase; vendors are allowed to define
|
||||
custom keys by preceding them with the vendor name in all
|
||||
uppercase. When writing pax archives, libarchive uses many
|
||||
of the SCHILY keys defined by Joerg Schilling’s
|
||||
’’star’’ archiver and a few
|
||||
LIBARCHIVE keys. The libarchive library can read most of the
|
||||
SCHILY keys and most of the GNU keys introduced by GNU tar.
|
||||
It silently ignores any keywords that it does not
|
||||
understand.</p>
|
||||
|
||||
<p style="margin-left:17%; margin-top: 1em">The pax
|
||||
interchange format converts filenames to Unicode and stores
|
||||
them using the UTF-8 encoding. Prior to libarchive 3.0,
|
||||
libarchive erroneously assumed that the system
|
||||
wide-character routines natively supported Unicode. This
|
||||
caused it to mis-handle non-ASCII filenames on systems that
|
||||
did not satisfy this assumption.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>restricted pax</b></p>
|
||||
|
||||
<p style="margin-left:17%;">The libarchive library can also
|
||||
write pax archives in which it attempts to suppress the
|
||||
extended attributes entry whenever possible. The result will
|
||||
be identical to a ustar archive unless the extended
|
||||
attributes entry is required to store a long file name, long
|
||||
linkname, extended ACL, file flags, or if any of the
|
||||
standard ustar data (user name, group name, UID, GID, etc)
|
||||
cannot be fully represented in the ustar header. In all
|
||||
cases, the result can be dearchived by any program that can
|
||||
read POSIX-compliant pax interchange format archives.
|
||||
Programs that correctly read ustar format (see below) will
|
||||
also be able to read this format; any extended attributes
|
||||
will be extracted as separate files stored in
|
||||
<i>PaxHeader</i> directories.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>ustar</b></p>
|
||||
|
||||
<p style="margin-left:17%; margin-top: 1em">The libarchive
|
||||
library can both read and write this format. This format has
|
||||
the following limitations:</p>
|
||||
|
||||
<p><b>•</b></p>
|
||||
|
||||
<p style="margin-left:22%;">Device major and minor numbers
|
||||
are limited to 21 bits. Nodes with larger numbers will not
|
||||
be added to the archive.</p>
|
||||
|
||||
<p><b>•</b></p>
|
||||
|
||||
<p style="margin-left:22%;">Path names in the archive are
|
||||
limited to 255 bytes. (Shorter if there is no / character in
|
||||
exactly the right place.)</p>
|
||||
|
||||
<p><b>•</b></p>
|
||||
|
||||
<p style="margin-left:22%;">Symbolic links and hard links
|
||||
are stored in the archive with the name of the referenced
|
||||
file. This name is limited to 100 bytes.</p>
|
||||
|
||||
<p><b>•</b></p>
|
||||
|
||||
<p style="margin-left:22%;">Extended attributes, file
|
||||
flags, and other extended security information cannot be
|
||||
stored.</p>
|
||||
|
||||
<p><b>•</b></p>
|
||||
|
||||
<p style="margin-left:22%;">Archive entries are limited to
|
||||
8 gigabytes in size.</p>
|
||||
|
||||
<p style="margin-left:17%;">Note that the pax interchange
|
||||
format has none of these restrictions. The ustar format is
|
||||
old and widely supported. It is recommended when
|
||||
compatibility is the primary concern.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>v7</b></p>
|
||||
|
||||
<p style="margin-left:17%; margin-top: 1em">The libarchive
|
||||
library can read and write the legacy v7 tar format. This
|
||||
format has the following limitations:</p>
|
||||
|
||||
<p><b>•</b></p>
|
||||
|
||||
<p style="margin-left:22%;">Only regular files,
|
||||
directories, and symbolic links can be archived. Block and
|
||||
character device nodes, FIFOs, and sockets cannot be
|
||||
archived.</p>
|
||||
|
||||
<p><b>•</b></p>
|
||||
|
||||
<p style="margin-left:22%;">Path names in the archive are
|
||||
limited to 100 bytes.</p>
|
||||
|
||||
<p><b>•</b></p>
|
||||
|
||||
<p style="margin-left:22%;">Symbolic links and hard links
|
||||
are stored in the archive with the name of the referenced
|
||||
file. This name is limited to 100 bytes.</p>
|
||||
|
||||
<p><b>•</b></p>
|
||||
|
||||
<p style="margin-left:22%;">User and group information are
|
||||
stored as numeric IDs; there is no provision for storing
|
||||
user or group names.</p>
|
||||
|
||||
<p><b>•</b></p>
|
||||
|
||||
<p style="margin-left:22%;">Extended attributes, file
|
||||
flags, and other extended security information cannot be
|
||||
stored.</p>
|
||||
|
||||
<p><b>•</b></p>
|
||||
|
||||
<p style="margin-left:22%;">Archive entries are limited to
|
||||
8 gigabytes in size.</p>
|
||||
|
||||
<p style="margin-left:17%;">Generally, users should prefer
|
||||
the ustar format for portability as the v7 tar format is
|
||||
both less useful and less portable.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The libarchive
|
||||
library also reads a variety of commonly-used extensions to
|
||||
the basic tar format. These extensions are recognized
|
||||
automatically whenever they appear.</p>
|
||||
|
||||
<p style="margin-top: 1em">Numeric extensions.</p>
|
||||
|
||||
<p style="margin-left:17%;">The POSIX standards require
|
||||
fixed-length numeric fields to be written with some
|
||||
character position reserved for terminators. Libarchive
|
||||
allows these fields to be written without terminator
|
||||
characters. This extends the allowable range; in particular,
|
||||
ustar archives with this extension can support entries up to
|
||||
64 gigabytes in size. Libarchive also recognizes base-256
|
||||
values in most numeric fields. This essentially removes all
|
||||
limitations on file size, modification time, and device
|
||||
numbers.</p>
|
||||
|
||||
<p style="margin-top: 1em">Solaris extensions</p>
|
||||
|
||||
<p style="margin-left:17%;">Libarchive recognizes ACL and
|
||||
extended attribute records written by Solaris tar.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The first tar
|
||||
program appeared in Seventh Edition Unix in 1979. The first
|
||||
official standard for the tar file format was the
|
||||
’’ustar’’ (Unix Standard Tar) format
|
||||
defined by POSIX in 1988. POSIX.1-2001 extended the ustar
|
||||
format to create the ’’pax
|
||||
interchange’’ format.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>Cpio
|
||||
Formats</b> <br>
|
||||
The libarchive library can read a number of common cpio
|
||||
variants and can write ’’odc’’ and
|
||||
’’newc’’ format archives. A cpio
|
||||
archive stores each entry as a fixed-size header followed by
|
||||
a variable-length filename and variable-length data. Unlike
|
||||
the tar format, the cpio format does only minimal padding of
|
||||
the header or file data. There are several cpio variants,
|
||||
which differ primarily in how they store the initial header:
|
||||
some store the values as octal or hexadecimal numbers in
|
||||
ASCII, others as binary values of varying byte order and
|
||||
length.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>binary</b></p>
|
||||
|
||||
<p style="margin-left:17%; margin-top: 1em">The libarchive
|
||||
library transparently reads both big-endian and
|
||||
little-endian variants of the original binary cpio format.
|
||||
This format used 32-bit binary values for file size and
|
||||
mtime, and 16-bit binary values for the other fields.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>odc</b></p>
|
||||
|
||||
<p style="margin-left:17%; margin-top: 1em">The libarchive
|
||||
library can both read and write this POSIX-standard format,
|
||||
which is officially known as the ’’cpio
|
||||
interchange format’’ or the
|
||||
’’octet-oriented cpio archive
|
||||
format’’ and sometimes unofficially referred to
|
||||
as the ’’old character format’’.
|
||||
This format stores the header contents as octal values in
|
||||
ASCII. It is standard, portable, and immune from byte-order
|
||||
confusion. File sizes and mtime are limited to 33 bits (8GB
|
||||
file size), other fields are limited to 18 bits.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SVR4/newc</b></p>
|
||||
|
||||
<p style="margin-left:17%;">The libarchive library can read
|
||||
both CRC and non-CRC variants of this format. The SVR4
|
||||
format uses eight-digit hexadecimal values for all header
|
||||
fields. This limits file size to 4GB, and also limits the
|
||||
mtime and other fields to 32 bits. The SVR4 format can
|
||||
optionally include a CRC of the file contents, although
|
||||
libarchive does not currently verify this CRC.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">Cpio first
|
||||
appeared in PWB/UNIX 1.0, which was released within AT&T
|
||||
in 1977. PWB/UNIX 1.0 formed the basis of System III Unix,
|
||||
released outside of AT&T in 1981. This makes cpio older
|
||||
than tar, although cpio was not included in Version 7
|
||||
AT&T Unix. As a result, the tar command became much
|
||||
better known in universities and research groups that used
|
||||
Version 7. The combination of the <b>find</b> and
|
||||
<b>cpio</b> utilities provided very precise control over
|
||||
file selection. Unfortunately, the format has many
|
||||
limitations that make it unsuitable for widespread use. Only
|
||||
the POSIX format permits files over 4GB, and its 18-bit
|
||||
limit for most other fields makes it unsuitable for modern
|
||||
systems. In addition, cpio formats only store numeric
|
||||
UID/GID values (not usernames and group names), which can
|
||||
make it very difficult to correctly transfer archives across
|
||||
systems with dissimilar user numbering.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>Shar
|
||||
Formats</b> <br>
|
||||
A ’’shell archive’’ is a shell
|
||||
script that, when executed on a POSIX-compliant system, will
|
||||
recreate a collection of file system objects. The libarchive
|
||||
library can write two different kinds of shar archives:</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>shar</b></p>
|
||||
|
||||
<p style="margin-left:17%; margin-top: 1em">The traditional
|
||||
shar format uses a limited set of POSIX commands, including
|
||||
echo(1), mkdir(1), and sed(1). It is suitable for portably
|
||||
archiving small collections of plain text files. However, it
|
||||
is not generally well-suited for large archives (many
|
||||
implementations of sh(1) have limits on the size of a
|
||||
script) nor should it be used with non-text files.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>shardump</b></p>
|
||||
|
||||
<p style="margin-left:17%;">This format is similar to shar
|
||||
but encodes files using uuencode(1) so that the result will
|
||||
be a plain text file regardless of the file contents. It
|
||||
also includes additional shell commands that attempt to
|
||||
reproduce as many file attributes as possible, including
|
||||
owner, mode, and flags. The additional commands used to
|
||||
restore file attributes make shardump archives less portable
|
||||
than plain shar archives.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>ISO9660
|
||||
format</b> <br>
|
||||
Libarchive can read and extract from files containing
|
||||
ISO9660-compliant CDROM images. In many cases, this can
|
||||
remove the need to burn a physical CDROM just in order to
|
||||
read the files contained in an ISO9660 image. It also avoids
|
||||
security and complexity issues that come with virtual mounts
|
||||
and loopback devices. Libarchive supports the most common
|
||||
Rockridge extensions and has partial support for Joliet
|
||||
extensions. If both extensions are present, the Joliet
|
||||
extensions will be used and the Rockridge extensions will be
|
||||
ignored. In particular, this can create problems with
|
||||
hardlinks and symlinks, which are supported by Rockridge but
|
||||
not by Joliet.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">Libarchive reads
|
||||
ISO9660 images using a streaming strategy. This allows it to
|
||||
read compressed images directly (decompressing on the fly)
|
||||
and allows it to read images directly from network sockets,
|
||||
pipes, and other non-seekable data sources. This strategy
|
||||
works well for optimized ISO9660 images created by many
|
||||
popular programs. Such programs collect all directory
|
||||
information at the beginning of the ISO9660 image so it can
|
||||
be read from a physical disk with a minimum of seeking.
|
||||
However, not all ISO9660 images can be read in this
|
||||
fashion.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">Libarchive can
|
||||
also write ISO9660 images. Such images are fully optimized
|
||||
with the directory information preceding all file data. This
|
||||
is done by storing all file data to a temporary file while
|
||||
collecting directory information in memory. When the image
|
||||
is finished, libarchive writes out the directory structure
|
||||
followed by the file data. The location used for the
|
||||
temporary file can be changed by the usual environment
|
||||
variables.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>Zip
|
||||
format</b> <br>
|
||||
Libarchive can read and write zip format archives that have
|
||||
uncompressed entries and entries compressed with the
|
||||
’’deflate’’ algorithm. Other zip
|
||||
compression algorithms are not supported. It can extract jar
|
||||
archives, archives that use Zip64 extensions and
|
||||
self-extracting zip archives. Libarchive can use either of
|
||||
two different strategies for reading Zip archives: a
|
||||
streaming strategy which is fast and can handle extremely
|
||||
large archives, and a seeking strategy which can correctly
|
||||
process self-extracting Zip archives and archives with
|
||||
deleted members or other in-place modifications.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The streaming
|
||||
reader processes Zip archives as they are read. It can read
|
||||
archives of arbitrary size from tape or network sockets, and
|
||||
can decode Zip archives that have been separately compressed
|
||||
or encoded. However, self-extracting Zip archives and
|
||||
archives with certain types of modifications cannot be
|
||||
correctly handled. Such archives require that the reader
|
||||
first process the Central Directory, which is ordinarily
|
||||
located at the end of a Zip archive and is thus inaccessible
|
||||
to the streaming reader. If the program using libarchive has
|
||||
enabled seek support, then libarchive will use this to
|
||||
processes the central directory first.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">In particular,
|
||||
the seeking reader must be used to correctly handle
|
||||
self-extracting archives. Such archives consist of a program
|
||||
followed by a regular Zip archive. The streaming reader
|
||||
cannot parse the initial program portion, but the seeking
|
||||
reader starts by reading the Central Directory from the end
|
||||
of the archive. Similarly, Zip archives that have been
|
||||
modified in-place can have deleted entries or other garbage
|
||||
data that can only be accurately detected by first reading
|
||||
the Central Directory.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>Archive
|
||||
(library) file format</b> <br>
|
||||
The Unix archive format (commonly created by the ar(1)
|
||||
archiver) is a general-purpose format which is used almost
|
||||
exclusively for object files to be read by the link editor
|
||||
ld(1). The ar format has never been standardised. There are
|
||||
two common variants: the GNU format derived from SVR4, and
|
||||
the BSD format, which first appeared in 4.4BSD. The two
|
||||
differ primarily in their handling of filenames longer than
|
||||
15 characters: the GNU/SVR4 variant writes a filename table
|
||||
at the beginning of the archive; the BSD format stores each
|
||||
long filename in an extension area adjacent to the entry.
|
||||
Libarchive can read both extensions, including archives that
|
||||
may include both types of long filenames. Programs using
|
||||
libarchive can write GNU/SVR4 format if they provide an
|
||||
entry called <i>//</i> containing a filename table to be
|
||||
written into the archive before any of the entries. Any
|
||||
entries whose names are not in the filename table will be
|
||||
written using BSD-style long filenames. This can cause
|
||||
problems for programs such as GNU ld that do not support the
|
||||
BSD-style long filenames.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>mtree</b>
|
||||
<br>
|
||||
Libarchive can read and write files in mtree(5) format. This
|
||||
format is not a true archive format, but rather a textual
|
||||
description of a file hierarchy in which each line specifies
|
||||
the name of a file and provides specific metadata about that
|
||||
file. Libarchive can read all of the keywords supported by
|
||||
both the NetBSD and FreeBSD versions of mtree(8), although
|
||||
many of the keywords cannot currently be stored in an
|
||||
archive_entry object. When writing, libarchive supports use
|
||||
of the archive_write_set_options(3) interface to specify
|
||||
which keywords should be included in the output. If
|
||||
libarchive was compiled with access to suitable
|
||||
cryptographic libraries (such as the OpenSSL libraries), it
|
||||
can compute hash entries such as <b>sha512</b> or <b>md5</b>
|
||||
from file data being written to the mtree writer.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">When reading an
|
||||
mtree file, libarchive will locate the corresponding files
|
||||
on disk using the <b>contents</b> keyword if present or the
|
||||
regular filename. If it can locate and open the file on
|
||||
disk, it will use that to fill in any metadata that is
|
||||
missing from the mtree file and will read the file contents
|
||||
and return those to the program using libarchive. If it
|
||||
cannot locate and open the file on disk, libarchive will
|
||||
return an error for any attempt to read the entry body.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>7-Zip</b>
|
||||
<br>
|
||||
Libarchive can read and write 7-Zip format archives. TODO:
|
||||
Need more information</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>CAB</b> <br>
|
||||
Libarchive can read Microsoft Cabinet (
|
||||
’’CAB’’) format archives. TODO: Need
|
||||
more information.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>LHA</b> <br>
|
||||
TODO: Information about libarchive’s LHA support</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>RAR</b> <br>
|
||||
Libarchive has limited support for reading RAR format
|
||||
archives. Currently, libarchive can read RARv3 format
|
||||
archives which have been either created uncompressed, or
|
||||
compressed using any of the compression methods supported by
|
||||
the RARv3 format. Libarchive can also read self-extracting
|
||||
RAR archives.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>Warc</b> <br>
|
||||
Libarchive can read and write ’’web
|
||||
archives’’. TODO: Need more information</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>XAR</b> <br>
|
||||
Libarchive can read and write the XAR format used by many
|
||||
Apple tools. TODO: Need more information</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SEE ALSO</b></p>
|
||||
|
||||
<p style="margin-left:6%;">ar(1), cpio(1), mkisofs(1),
|
||||
shar(1), tar(1), zip(1), zlib(3), cpio(5), mtree(5),
|
||||
tar(5)</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">BSD
|
||||
December 27, 2016 BSD</p>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
318
dependencies/libarchive-3.4.2/doc/html/libarchive.3.html
vendored
Normal file
318
dependencies/libarchive-3.4.2/doc/html/libarchive.3.html
vendored
Normal file
|
@ -0,0 +1,318 @@
|
|||
<!-- Creator : groff version 1.22.3 -->
|
||||
<!-- CreationDate: Tue Feb 11 22:58:46 2020 -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="groff -Thtml, see www.gnu.org">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<meta name="Content-Style" content="text/css">
|
||||
<style type="text/css">
|
||||
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
h1 { text-align: center }
|
||||
</style>
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<p>LIBARCHIVE(3) BSD Library Functions Manual
|
||||
LIBARCHIVE(3)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>NAME</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>libarchive</b> —
|
||||
functions for reading and writing streaming archives</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>OVERVIEW</b></p>
|
||||
|
||||
<p style="margin-left:6%;">The <b>libarchive</b> library
|
||||
provides a flexible interface for reading and writing
|
||||
archives in various formats such as tar and cpio.
|
||||
<b>libarchive</b> also supports reading and writing archives
|
||||
compressed using various compression filters such as gzip
|
||||
and bzip2. The library is inherently stream-oriented;
|
||||
readers serially iterate through the archive, writers
|
||||
serially add things to the archive. In particular, note that
|
||||
there is currently no built-in support for random access nor
|
||||
for in-place modification.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">When reading an
|
||||
archive, the library automatically detects the format and
|
||||
the compression. The library currently has read support
|
||||
for:</p>
|
||||
|
||||
<p><b>•</b></p>
|
||||
|
||||
<p style="margin-left:12%;">old-style tar archives,</p>
|
||||
|
||||
<p><b>•</b></p>
|
||||
|
||||
<p style="margin-left:12%;">most variants of the POSIX
|
||||
’’ustar’’ format,</p>
|
||||
|
||||
<p><b>•</b></p>
|
||||
|
||||
<p style="margin-left:12%;">the POSIX ’’pax
|
||||
interchange’’ format,</p>
|
||||
|
||||
<p><b>•</b></p>
|
||||
|
||||
<p style="margin-left:12%;">GNU-format tar archives,</p>
|
||||
|
||||
<p><b>•</b></p>
|
||||
|
||||
<p style="margin-left:12%;">most common cpio archive
|
||||
formats,</p>
|
||||
|
||||
<p><b>•</b></p>
|
||||
|
||||
<p style="margin-left:12%;">ISO9660 CD images (including
|
||||
RockRidge and Joliet extensions),</p>
|
||||
|
||||
<p><b>•</b></p>
|
||||
|
||||
<p style="margin-left:12%;">Zip archives,</p>
|
||||
|
||||
<p><b>•</b></p>
|
||||
|
||||
<p style="margin-left:12%;">ar archives (including GNU/SysV
|
||||
and BSD extensions),</p>
|
||||
|
||||
<p><b>•</b></p>
|
||||
|
||||
<p style="margin-left:12%;">Microsoft CAB archives,</p>
|
||||
|
||||
<p><b>•</b></p>
|
||||
|
||||
<p style="margin-left:12%;">LHA archives,</p>
|
||||
|
||||
<p><b>•</b></p>
|
||||
|
||||
<p style="margin-left:12%;">mtree file tree
|
||||
descriptions,</p>
|
||||
|
||||
<p><b>•</b></p>
|
||||
|
||||
<p style="margin-left:12%;">RAR archives,</p>
|
||||
|
||||
<p><b>•</b></p>
|
||||
|
||||
<p style="margin-left:12%;">XAR archives.</p>
|
||||
|
||||
<p style="margin-left:6%;">The library automatically
|
||||
detects archives compressed with gzip(1), bzip2(1), xz(1),
|
||||
lzip(1), or compress(1) and decompresses them transparently.
|
||||
It can similarly detect and decode archives processed with
|
||||
uuencode(1) or which have an rpm(1) header.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">When writing an
|
||||
archive, you can specify the compression to be used and the
|
||||
format to use. The library can write</p>
|
||||
|
||||
<p><b>•</b></p>
|
||||
|
||||
<p style="margin-left:12%;">POSIX-standard
|
||||
’’ustar’’ archives,</p>
|
||||
|
||||
<p><b>•</b></p>
|
||||
|
||||
<p style="margin-left:12%;">POSIX ’’pax
|
||||
interchange format’’ archives,</p>
|
||||
|
||||
<p><b>•</b></p>
|
||||
|
||||
<p style="margin-left:12%;">POSIX octet-oriented cpio
|
||||
archives,</p>
|
||||
|
||||
<p><b>•</b></p>
|
||||
|
||||
<p style="margin-left:12%;">Zip archive,</p>
|
||||
|
||||
<p><b>•</b></p>
|
||||
|
||||
<p style="margin-left:12%;">two different variants of shar
|
||||
archives,</p>
|
||||
|
||||
<p><b>•</b></p>
|
||||
|
||||
<p style="margin-left:12%;">ISO9660 CD images,</p>
|
||||
|
||||
<p><b>•</b></p>
|
||||
|
||||
<p style="margin-left:12%;">7-Zip archives,</p>
|
||||
|
||||
<p><b>•</b></p>
|
||||
|
||||
<p style="margin-left:12%;">ar archives,</p>
|
||||
|
||||
<p><b>•</b></p>
|
||||
|
||||
<p style="margin-left:12%;">mtree file tree
|
||||
descriptions,</p>
|
||||
|
||||
<p><b>•</b></p>
|
||||
|
||||
<p style="margin-left:12%;">XAR archives.</p>
|
||||
|
||||
<p style="margin-left:6%;">Pax interchange format is an
|
||||
extension of the tar archive format that eliminates
|
||||
essentially all of the limitations of historic tar formats
|
||||
in a standard fashion that is supported by POSIX-compliant
|
||||
pax(1) implementations on many systems as well as several
|
||||
newer implementations of tar(1). Note that the default write
|
||||
format will suppress the pax extended attributes for most
|
||||
entries; explicitly requesting pax format will enable those
|
||||
attributes for all entries.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The read and
|
||||
write APIs are accessed through the
|
||||
<b>archive_read_XXX</b>() functions and the
|
||||
<b>archive_write_XXX</b>() functions, respectively, and
|
||||
either can be used independently of the other.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The rest of this
|
||||
manual page provides an overview of the library operation.
|
||||
More detailed information can be found in the individual
|
||||
manual pages for each API or utility function.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>READING AN ARCHIVE</b></p>
|
||||
|
||||
<p style="margin-left:6%;">See archive_read(3).</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>WRITING AN ARCHIVE</b></p>
|
||||
|
||||
<p style="margin-left:6%;">See archive_write(3).</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>WRITING ENTRIES TO
|
||||
DISK</b></p>
|
||||
|
||||
<p style="margin-left:6%;">The archive_write_disk(3) API
|
||||
allows you to write archive_entry(3) objects to disk using
|
||||
the same API used by archive_write(3). The
|
||||
archive_write_disk(3) API is used internally by
|
||||
<b>archive_read_extract</b>(); using it directly can provide
|
||||
greater control over how entries get written to disk. This
|
||||
API also makes it possible to share code between
|
||||
archive-to-archive copy and archive-to-disk extraction
|
||||
operations.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>READING ENTRIES FROM
|
||||
DISK</b></p>
|
||||
|
||||
<p style="margin-left:6%;">The archive_read_disk(3)
|
||||
supports for populating archive_entry(3) objects from
|
||||
information in the filesystem. This includes the information
|
||||
accessible from the stat(2) system call as well as ACLs,
|
||||
extended attributes, and other metadata. The
|
||||
archive_read_disk(3) API also supports iterating over
|
||||
directory trees, which allows directories of files to be
|
||||
read using an API compatible with the archive_read(3)
|
||||
API.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>DESCRIPTION</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Detailed descriptions of each
|
||||
function are provided by the corresponding manual pages.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">All of the
|
||||
functions utilize an opaque struct archive datatype that
|
||||
provides access to the archive contents.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The struct
|
||||
archive_entry structure contains a complete description of a
|
||||
single archive entry. It uses an opaque interface that is
|
||||
fully documented in archive_entry(3).</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">Users familiar
|
||||
with historic formats should be aware that the newer
|
||||
variants have eliminated most restrictions on the length of
|
||||
textual fields. Clients should not assume that filenames,
|
||||
link names, user names, or group names are limited in
|
||||
length. In particular, pax interchange format can easily
|
||||
accommodate pathnames in arbitrary character sets that
|
||||
exceed <i>PATH_MAX</i>.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>RETURN VALUES</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Most functions return
|
||||
<b>ARCHIVE_OK</b> (zero) on success, non-zero on error. The
|
||||
return value indicates the general severity of the error,
|
||||
ranging from <b>ARCHIVE_WARN</b>, which indicates a minor
|
||||
problem that should probably be reported to the user, to
|
||||
<b>ARCHIVE_FATAL</b>, which indicates a serious problem that
|
||||
will prevent any further operations on this archive. On
|
||||
error, the <b>archive_errno</b>() function can be used to
|
||||
retrieve a numeric error code (see errno(2)). The
|
||||
<b>archive_error_string</b>() returns a textual error
|
||||
message suitable for display.</p>
|
||||
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>archive_read_new</b>()
|
||||
and <b>archive_write_new</b>() return pointers to an
|
||||
allocated and initialized struct archive object.</p>
|
||||
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>archive_read_data</b>()
|
||||
and <b>archive_write_data</b>() return a count of the number
|
||||
of bytes actually read or written. A value of zero indicates
|
||||
the end of the data for this entry. A negative value
|
||||
indicates an error, in which case the <b>archive_errno</b>()
|
||||
and <b>archive_error_string</b>() functions can be used to
|
||||
obtain more information.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>ENVIRONMENT</b></p>
|
||||
|
||||
<p style="margin-left:6%;">There are character set
|
||||
conversions within the archive_entry(3) functions that are
|
||||
impacted by the currently-selected locale.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SEE ALSO</b></p>
|
||||
|
||||
<p style="margin-left:6%;">tar(1), archive_entry(3),
|
||||
archive_read(3), archive_util(3), archive_write(3),
|
||||
tar(5)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>HISTORY</b></p>
|
||||
|
||||
<p style="margin-left:6%;">The <b>libarchive</b> library
|
||||
first appeared in FreeBSD 5.3.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>AUTHORS</b></p>
|
||||
|
||||
<p style="margin-left:6%;">The <b>libarchive</b> library
|
||||
was originally written by Tim Kientzle
|
||||
<kientzle@acm.org>.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>BUGS</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Some archive formats support
|
||||
information that is not supported by struct archive_entry.
|
||||
Such information cannot be fully archived or restored using
|
||||
this library. This includes, for example, comments,
|
||||
character sets, or the arbitrary key/value pairs that can
|
||||
appear in pax interchange format archives.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">Conversely, of
|
||||
course, not all of the information that can be stored in an
|
||||
struct archive_entry is supported by all formats. For
|
||||
example, cpio formats do not support nanosecond timestamps;
|
||||
old tar formats do not support large device numbers.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The ISO9660
|
||||
reader cannot yet read all ISO9660 images; it should learn
|
||||
how to seek.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The AR writer
|
||||
requires the client program to use two passes, unlike all
|
||||
other libarchive writers.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">BSD
|
||||
March 18, 2012 BSD</p>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
464
dependencies/libarchive-3.4.2/doc/html/libarchive_changes.3.html
vendored
Normal file
464
dependencies/libarchive-3.4.2/doc/html/libarchive_changes.3.html
vendored
Normal file
|
@ -0,0 +1,464 @@
|
|||
<!-- Creator : groff version 1.22.3 -->
|
||||
<!-- CreationDate: Tue Feb 11 22:58:46 2020 -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="groff -Thtml, see www.gnu.org">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<meta name="Content-Style" content="text/css">
|
||||
<style type="text/css">
|
||||
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
h1 { text-align: center }
|
||||
</style>
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<p>LIBARCHIVE_CHANGES(3) BSD Library Functions Manual
|
||||
LIBARCHIVE_CHANGES(3)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>NAME</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>libarchive_changes</b>
|
||||
— changes in libarchive interface</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>CHANGES IN LIBARCHIVE
|
||||
3</b></p>
|
||||
|
||||
<p style="margin-left:6%;">This page describes user-visible
|
||||
changes in libarchive3, and lists public functions and other
|
||||
symbols changed, deprecated or removed in libarchive3, along
|
||||
with their replacements if any.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>Multiple
|
||||
Filters</b> <br>
|
||||
Libarchive2 permitted a single (input or output) filter
|
||||
active on an archive. Libarchive3 extends this into a
|
||||
variable-length stack. Where
|
||||
<b>archive_write_set_compression_XXX</b>() would replace any
|
||||
existing filter, <b>archive_write_add_filter_XXX</b>()
|
||||
extends the write pipeline with another filter.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>Character Set
|
||||
Handling</b> <br>
|
||||
Libarchive2 assumed that the local platform uses Unicode as
|
||||
the native wchar_t encoding, which is true on Windows,
|
||||
modern Linux, and a few other systems, but is certainly not
|
||||
universal. As a result, pax format archives were written
|
||||
incorrectly on some systems, since pax format requires UTF-8
|
||||
and libarchive 2 incorrectly assumed that wchar_t strings
|
||||
can be easily converted to UTF-8.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">Libarchive3 uses
|
||||
the standard iconv library to convert between character sets
|
||||
and is introducing the notion of a ’’default
|
||||
character set for the archive’’. To support
|
||||
this, archive_entry objects can now be bound to a particular
|
||||
archive when they are created. The automatic character set
|
||||
conversions performed by archive_entry objects when reading
|
||||
and writing filenames, usernames, and other strings will now
|
||||
use an appropriate default character set:</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">If the
|
||||
archive_entry object is bound to an archive, it will use the
|
||||
default character set for that archive.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The platform
|
||||
default character encoding (as returned by
|
||||
<b>nl_langinfo</b>(<i>CHARSET</i>)) will be used if nothing
|
||||
else is specified.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">Libarchive3 also
|
||||
introduces charset options to many of the archive readers
|
||||
and writers to control the character set that will be used
|
||||
for filenames written in those archives. When possible, this
|
||||
will be set automatically based on information in the
|
||||
archive itself. Combining this with the notion of a default
|
||||
character set for the archive should allow you to configure
|
||||
libarchive to read archives from other platforms and have
|
||||
the filenames and other information transparently converted
|
||||
to the character encoding suitable for your application.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>Prototype
|
||||
Changes</b> <br>
|
||||
These changes break binary compatibility; libarchive3 has a
|
||||
new shared library version to reflect these changes. The
|
||||
library now uses portable wide types such as int64_t instead
|
||||
of less-portable types such as off_t, gid_t, uid_t, and
|
||||
ino_t.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">There are a few
|
||||
cases where these changes will affect your source code:</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>•</b></p>
|
||||
|
||||
<p style="margin-left:13%;">In some cases,
|
||||
libarchive’s wider types will introduce the
|
||||
possibility of truncation: for example, on a system with a
|
||||
16-bit uid_t, you risk having uid 65536 be truncated to uid
|
||||
0, which can cause serious security problems.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>•</b></p>
|
||||
|
||||
<p style="margin-left:13%;">Typedef function pointer types
|
||||
will be incompatible. For example, if you define custom skip
|
||||
callbacks, you may have to use code similar to the following
|
||||
if you want to support building against libarchive2 and
|
||||
libarchive3:</p>
|
||||
|
||||
<p style="margin-left:13%; margin-top: 1em">#if
|
||||
ARCHIVE_VERSION_NUMBER < 3000000 <br>
|
||||
typedef off_t myoff_t; <br>
|
||||
#else <br>
|
||||
typedef int64_t myoff_t; <br>
|
||||
#endif</p>
|
||||
|
||||
<p style="margin-left:13%; margin-top: 1em">myoff_t <br>
|
||||
my_skip_function(struct archive *a, void *v, myoff_t o) <br>
|
||||
{ <br>
|
||||
... implementation ... <br>
|
||||
}</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">Affected
|
||||
functions:</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>• <br>
|
||||
archive_entry_gid</b>(), <b>archive_entry_set_gid</b>()
|
||||
<b><br>
|
||||
• <br>
|
||||
archive_entry_uid</b>(), <b>archive_entry_set_uid</b>()
|
||||
<b><br>
|
||||
• <br>
|
||||
archive_entry_ino</b>(), <b>archive_entry_set_ino</b>()
|
||||
<b><br>
|
||||
• <br>
|
||||
archive_read_data_block</b>(),
|
||||
<b>archive_write_data_block</b>() <b><br>
|
||||
• <br>
|
||||
archive_read_disk_gname</b>(),
|
||||
<b>archive_read_disk_uname</b>() <b><br>
|
||||
• <br>
|
||||
archive_read_disk_set_gname_lookup</b>(),
|
||||
<b>archive_read_disk_set_group_lookup</b>(),
|
||||
<b>archive_read_disk_set_uname_lookup</b>(),
|
||||
<b>archive_read_disk_set_user_lookup</b>() <b><br>
|
||||
•</b></p>
|
||||
|
||||
|
||||
<p style="margin-left:12%;"><b>archive_skip_callback</b>()</p>
|
||||
|
||||
<p><b>• <br>
|
||||
archive_read_extract_set_skip_file</b>(),
|
||||
<b>archive_write_disk_set_skip_file</b>(),
|
||||
<b>archive_write_set_skip_file</b>() <b><br>
|
||||
• <br>
|
||||
archive_write_disk_set_group_lookup</b>(),
|
||||
<b>archive_write_disk_set_user_lookup</b>()</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">Where these
|
||||
functions or their arguments took or returned gid_t, ino_t,
|
||||
off_t, or uid_t they now take or return int64_t or
|
||||
equivalent.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>Deprecated
|
||||
Symbols</b> <br>
|
||||
Symbols deprecated in libarchive3 will be removed in
|
||||
libarchive4. These symbols, along with their replacements if
|
||||
any, are listed below:</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_position_compressed</b>(),
|
||||
<b>archive_position_uncompressed</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-left:13%;"><b>archive_filter_bytes</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_compression</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-left:13%;"><b>archive_filter_code</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_compression_name</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-left:13%;"><b>archive_filter_name</b>()</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_read_finish</b>(),
|
||||
<b>archive_write_finish</b>()</p>
|
||||
|
||||
<p style="margin-left:13%;"><b>archive_read_free</b>(),
|
||||
<b>archive_write_free</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_read_open_file</b>(),
|
||||
<b>archive_write_open_file</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-left:13%;"><b>archive_read_open_filename</b>(),
|
||||
<b>archive_write_open_filename</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_read_support_compression_all</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-left:13%;"><b>archive_read_support_filter_all</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_read_support_compression_bzip2</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-left:13%;"><b>archive_read_support_filter_bzip2</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_read_support_compression_compress</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-left:13%;"><b>archive_read_support_filter_compress</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_read_support_compression_gzip</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-left:13%;"><b>archive_read_support_filter_gzip</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_read_support_compression_lzip</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-left:13%;"><b>archive_read_support_filter_lzip</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_read_support_compression_lzma</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-left:13%;"><b>archive_read_support_filter_lzma</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_read_support_compression_none</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-left:13%;"><b>archive_read_support_filter_none</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_read_support_compression_program</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-left:13%;"><b>archive_read_support_filter_program</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_read_support_compression_program_signature</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-left:13%;"><b>archive_read_support_filter_program_signature</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_read_support_compression_rpm</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-left:13%;"><b>archive_read_support_filter_rpm</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_read_support_compression_uu</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-left:13%;"><b>archive_read_support_filter_uu</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_read_support_compression_xz</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-left:13%;"><b>archive_read_support_filter_xz</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_write_set_compression_bzip2</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-left:13%;"><b>archive_write_add_filter_bzip2</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_write_set_compression_compress</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-left:13%;"><b>archive_write_add_filter_compress</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_write_set_compression_gzip</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-left:13%;"><b>archive_write_add_filter_gzip</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_write_set_compression_lzip</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-left:13%;"><b>archive_write_add_filter_lzip</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_write_set_compression_lzma</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-left:13%;"><b>archive_write_add_filter_lzma</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_write_set_compression_none</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-left:13%;"><b>archive_write_add_filter_none</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_write_set_compression_program</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-left:13%;"><b>archive_write_add_filter_program</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_write_set_compression_filter</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-left:13%;"><b>archive_write_add_filter_filter</b>()</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>Removed
|
||||
Symbols</b> <br>
|
||||
These symbols, listed below along with their replacements if
|
||||
any, were deprecated in libarchive2, and are not part of
|
||||
libarchive3.</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_api_feature</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-left:13%;"><b>archive_version_number</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_api_version</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-left:13%;"><b>archive_version_number</b>()</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_version</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-left:13%;"><b>archive_version_string</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_version_stamp</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-left:13%;"><b>archive_version_number</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_read_set_filter_options</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-left:13%;"><b>archive_read_set_options</b>()
|
||||
or <b>archive_read_set_filter_option</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_read_set_format_options</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-left:13%;"><b>archive_read_set_options</b>()
|
||||
or <b>archive_read_set_format_option</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_write_set_filter_options</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-left:13%;"><b>archive_write_set_options</b>()
|
||||
or <b>archive_write_set_filter_option</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>archive_write_set_format_options</b>()</p>
|
||||
|
||||
|
||||
<p style="margin-left:13%;"><b>archive_write_set_options</b>()
|
||||
or <b>archive_write_set_format_option</b>()</p>
|
||||
|
||||
<p style="margin-top: 1em">ARCHIVE_API_FEATURE</p>
|
||||
|
||||
<p style="margin-left:13%;">ARCHIVE_VERSION_NUMBER</p>
|
||||
|
||||
<p style="margin-top: 1em">ARCHIVE_API_VERSION</p>
|
||||
|
||||
<p style="margin-left:13%;">ARCHIVE_VERSION_NUMBER</p>
|
||||
|
||||
<p style="margin-top: 1em">ARCHIVE_VERSION_STAMP</p>
|
||||
|
||||
<p style="margin-left:13%;">ARCHIVE_VERSION_NUMBER</p>
|
||||
|
||||
<p style="margin-top: 1em">ARCHIVE_LIBRARY_VERSION</p>
|
||||
|
||||
<p style="margin-left:13%;">ARCHIVE_VERSION_STRING</p>
|
||||
|
||||
<p style="margin-top: 1em">ARCHIVE_COMPRESSION_NONE</p>
|
||||
|
||||
<p style="margin-left:13%;">ARCHIVE_FILTER_NONE</p>
|
||||
|
||||
<p style="margin-top: 1em">ARCHIVE_COMPRESSION_GZIP</p>
|
||||
|
||||
<p style="margin-left:13%;">ARCHIVE_FILTER_GZIP</p>
|
||||
|
||||
<p style="margin-top: 1em">ARCHIVE_COMPRESSION_BZIP2</p>
|
||||
|
||||
<p style="margin-left:13%;">ARCHIVE_FILTER_BZIP2</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em">ARCHIVE_COMPRESSION_COMPRESS</p>
|
||||
|
||||
<p style="margin-left:13%;">ARCHIVE_FILTER_COMPRESS</p>
|
||||
|
||||
<p style="margin-top: 1em">ARCHIVE_COMPRESSION_PROGRAM</p>
|
||||
|
||||
<p style="margin-left:13%;">ARCHIVE_FILTER_PROGRAM</p>
|
||||
|
||||
<p style="margin-top: 1em">ARCHIVE_COMPRESSION_LZMA</p>
|
||||
|
||||
<p style="margin-left:13%;">ARCHIVE_FILTER_LZMA</p>
|
||||
|
||||
<p style="margin-top: 1em">ARCHIVE_COMPRESSION_XZ</p>
|
||||
|
||||
<p style="margin-left:13%;">ARCHIVE_FILTER_XZ</p>
|
||||
|
||||
<p style="margin-top: 1em">ARCHIVE_COMPRESSION_UU</p>
|
||||
|
||||
<p style="margin-left:13%;">ARCHIVE_FILTER_UU</p>
|
||||
|
||||
<p style="margin-top: 1em">ARCHIVE_COMPRESSION_RPM</p>
|
||||
|
||||
<p style="margin-left:13%;">ARCHIVE_FILTER_RPM</p>
|
||||
|
||||
<p style="margin-top: 1em">ARCHIVE_COMPRESSION_LZIP</p>
|
||||
|
||||
<p style="margin-left:13%;">ARCHIVE_FILTER_LZIP</p>
|
||||
|
||||
<p style="margin-top: 1em">ARCHIVE_BYTES_PER_RECORD</p>
|
||||
|
||||
<p style="margin-left:13%;">512</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em">ARCHIVE_DEFAULT_BYTES_PER_BLOCK</p>
|
||||
|
||||
<p style="margin-left:13%;">10240</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SEE ALSO</b></p>
|
||||
|
||||
<p style="margin-left:6%;">archive_read(3),
|
||||
archive_read_filter(3), archive_read_format(3),
|
||||
archive_read_set_options(3), archive_util(3),
|
||||
archive_write(3), archive_write_filter(3),
|
||||
archive_write_format(3), archive_write_set_options(3),
|
||||
libarchive(3)</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">BSD
|
||||
December 23, 2011 BSD</p>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
374
dependencies/libarchive-3.4.2/doc/html/libarchive_internals.3.html
vendored
Normal file
374
dependencies/libarchive-3.4.2/doc/html/libarchive_internals.3.html
vendored
Normal file
|
@ -0,0 +1,374 @@
|
|||
<!-- Creator : groff version 1.22.3 -->
|
||||
<!-- CreationDate: Tue Feb 11 22:58:46 2020 -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="groff -Thtml, see www.gnu.org">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<meta name="Content-Style" content="text/css">
|
||||
<style type="text/css">
|
||||
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
h1 { text-align: center }
|
||||
</style>
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<p>LIBARCHIVE_INTERNALS(3) BSD Library Functions Manual
|
||||
LIBARCHIVE_INTERNALS(3)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>NAME</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>libarchive_internals</b>
|
||||
— description of libarchive internal interfaces</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>OVERVIEW</b></p>
|
||||
|
||||
<p style="margin-left:6%;">The <b>libarchive</b> library
|
||||
provides a flexible interface for reading and writing
|
||||
streaming archive files such as tar and cpio. Internally, it
|
||||
follows a modular layered design that should make it easy to
|
||||
add new archive and compression formats.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>GENERAL ARCHITECTURE</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Externally, libarchive exposes
|
||||
most operations through an opaque, object-style interface.
|
||||
The archive_entry(3) objects store information about a
|
||||
single filesystem object. The rest of the library provides
|
||||
facilities to write archive_entry(3) objects to archive
|
||||
files, read them from archive files, and write them to disk.
|
||||
(There are plans to add a facility to read archive_entry(3)
|
||||
objects from disk as well.)</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The read and
|
||||
write APIs each have four layers: a public API layer, a
|
||||
format layer that understands the archive file format, a
|
||||
compression layer, and an I/O layer. The I/O layer is
|
||||
completely exposed to clients who can replace it entirely
|
||||
with their own functions.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">In order to
|
||||
provide as much consistency as possible for clients, some
|
||||
public functions are virtualized. Eventually, it should be
|
||||
possible for clients to open an archive or disk writer, and
|
||||
then use a single set of code to select and write entries,
|
||||
regardless of the target.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>READ ARCHITECTURE</b></p>
|
||||
|
||||
<p style="margin-left:6%;">From the outside, clients use
|
||||
the archive_read(3) API to manipulate an <b>archive</b>
|
||||
object to read entries and bodies from an archive stream.
|
||||
Internally, the <b>archive</b> object is cast to an
|
||||
<b>archive_read</b> object, which holds all read-specific
|
||||
data. The API has four layers: The lowest layer is the I/O
|
||||
layer. This layer can be overridden by clients, but most
|
||||
clients use the packaged I/O callbacks provided, for
|
||||
example, by archive_read_open_memory(3), and
|
||||
archive_read_open_fd(3). The compression layer calls the I/O
|
||||
layer to read bytes and decompresses them for the format
|
||||
layer. The format layer unpacks a stream of uncompressed
|
||||
bytes and creates <b>archive_entry</b> objects from the
|
||||
incoming data. The API layer tracks overall state (for
|
||||
example, it prevents clients from reading data before
|
||||
reading a header) and invokes the format and compression
|
||||
layer operations through registered function pointers. In
|
||||
particular, the API layer drives the format-detection
|
||||
process: When opening the archive, it reads an initial block
|
||||
of data and offers it to each registered compression
|
||||
handler. The one with the highest bid is initialized with
|
||||
the first block. Similarly, the format handlers are polled
|
||||
to see which handler is the best for each archive. (Prior to
|
||||
2.4.0, the format bidders were invoked for each entry, but
|
||||
this design hindered error recovery.)</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>I/O Layer and
|
||||
Client Callbacks</b> <br>
|
||||
The read API goes to some lengths to be nice to clients. As
|
||||
a result, there are few restrictions on the behavior of the
|
||||
client callbacks.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The client read
|
||||
callback is expected to provide a block of data on each
|
||||
call. A zero-length return does indicate end of file, but
|
||||
otherwise blocks may be as small as one byte or as large as
|
||||
the entire file. In particular, blocks may be of different
|
||||
sizes.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">The client skip
|
||||
callback returns the number of bytes actually skipped, which
|
||||
may be much smaller than the skip requested. The only
|
||||
requirement is that the skip not be larger. In particular,
|
||||
clients are allowed to return zero for any skip that they
|
||||
don’t want to handle. The skip callback must never be
|
||||
invoked with a negative value.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">Keep in mind
|
||||
that not all clients are reading from disk: clients reading
|
||||
from networks may provide different-sized blocks on every
|
||||
request and cannot skip at all; advanced clients may use
|
||||
mmap(2) to read the entire file into memory at once and
|
||||
return the entire file to libarchive as a single block;
|
||||
other clients may begin asynchronous I/O operations for the
|
||||
next block on each request.</p>
|
||||
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>Decompresssion
|
||||
Layer</b> <br>
|
||||
The decompression layer not only handles decompression, it
|
||||
also buffers data so that the format handlers see a much
|
||||
nicer I/O model. The decompression API is a two stage
|
||||
peek/consume model. A read_ahead request specifies a minimum
|
||||
read amount; the decompression layer must provide a pointer
|
||||
to at least that much data. If more data is immediately
|
||||
available, it should return more: the format layer handles
|
||||
bulk data reads by asking for a minimum of one byte and then
|
||||
copying as much data as is available.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">A subsequent
|
||||
call to the <b>consume</b>() function advances the read
|
||||
pointer. Note that data returned from a <b>read_ahead</b>()
|
||||
call is guaranteed to remain in place until the next call to
|
||||
<b>read_ahead</b>(). Intervening calls to <b>consume</b>()
|
||||
should not cause the data to move.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">Skip requests
|
||||
must always be handled exactly. Decompression handlers that
|
||||
cannot seek forward should not register a skip handler; the
|
||||
API layer fills in a generic skip handler that reads and
|
||||
discards data.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">A decompression
|
||||
handler has a specific lifecycle:</p>
|
||||
|
||||
<p>Registration/Configuration</p>
|
||||
|
||||
<p style="margin-left:17%;">When the client invokes the
|
||||
public support function, the decompression handler invokes
|
||||
the internal <b>__archive_read_register_compression</b>()
|
||||
function to provide bid and initialization functions. This
|
||||
function returns <b>NULL</b> on error or else a pointer to a
|
||||
<b>struct decompressor_t</b>. This structure contains a
|
||||
<i>void * config</i> slot that can be used for storing any
|
||||
customization information.</p>
|
||||
|
||||
<p>Bid</p>
|
||||
|
||||
<p style="margin-left:17%; margin-top: 1em">The bid
|
||||
function is invoked with a pointer and size of a block of
|
||||
data. The decompressor can access its config data through
|
||||
the <i>decompressor</i> element of the <b>archive_read</b>
|
||||
object. The bid function is otherwise stateless. In
|
||||
particular, it must not perform any I/O operations.</p>
|
||||
|
||||
<p style="margin-left:17%; margin-top: 1em">The value
|
||||
returned by the bid function indicates its suitability for
|
||||
handling this data stream. A bid of zero will ensure that
|
||||
this decompressor is never invoked. Return zero if magic
|
||||
number checks fail. Otherwise, your initial implementation
|
||||
should return the number of bits actually checked. For
|
||||
example, if you verify two full bytes and three bits of
|
||||
another byte, bid 19. Note that the initial block may be
|
||||
very short; be careful to only inspect the data you are
|
||||
given. (The current decompressors require two bytes for
|
||||
correct bidding.)</p>
|
||||
|
||||
<p>Initialize</p>
|
||||
|
||||
<p style="margin-left:17%;">The winning bidder will have
|
||||
its init function called. This function should initialize
|
||||
the remaining slots of the <i>struct decompressor_t</i>
|
||||
object pointed to by the <i>decompressor</i> element of the
|
||||
<i>archive_read</i> object. In particular, it should
|
||||
allocate any working data it needs in the <i>data</i> slot
|
||||
of that structure. The init function is called with the
|
||||
block of data that was used for tasting. At this point, the
|
||||
decompressor is responsible for all I/O requests to the
|
||||
client callbacks. The decompressor is free to read more data
|
||||
as and when necessary.</p>
|
||||
|
||||
<p>Satisfy I/O requests</p>
|
||||
|
||||
<p style="margin-left:17%;">The format handler will invoke
|
||||
the <i>read_ahead</i>, <i>consume</i>, and <i>skip</i>
|
||||
functions as needed.</p>
|
||||
|
||||
<p>Finish</p>
|
||||
|
||||
<p style="margin-left:17%; margin-top: 1em">The finish
|
||||
method is called only once when the archive is closed. It
|
||||
should release anything stored in the <i>data</i> and
|
||||
<i>config</i> slots of the <i>decompressor</i> object. It
|
||||
should not invoke the client close callback.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>Format
|
||||
Layer</b> <br>
|
||||
The read formats have a similar lifecycle to the
|
||||
decompression handlers:</p>
|
||||
|
||||
<p>Registration</p>
|
||||
|
||||
<p style="margin-left:17%;">Allocate your private data and
|
||||
initialize your pointers.</p>
|
||||
|
||||
<p>Bid</p>
|
||||
|
||||
<p style="margin-left:17%; margin-top: 1em">Formats bid by
|
||||
invoking the <b>read_ahead</b>() decompression method but
|
||||
not calling the <b>consume</b>() method. This allows each
|
||||
bidder to look ahead in the input stream. Bidders should not
|
||||
look further ahead than necessary, as long look aheads put
|
||||
pressure on the decompression layer to buffer lots of data.
|
||||
Most formats only require a few hundred bytes of look ahead;
|
||||
look aheads of a few kilobytes are reasonable. (The ISO9660
|
||||
reader sometimes looks ahead by 48k, which should be
|
||||
considered an upper limit.)</p>
|
||||
|
||||
<p>Read header</p>
|
||||
|
||||
<p style="margin-left:17%;">The header read is usually the
|
||||
most complex part of any format. There are a few strategies
|
||||
worth mentioning: For formats such as tar or cpio, reading
|
||||
and parsing the header is straightforward since headers
|
||||
alternate with data. For formats that store all header data
|
||||
at the beginning of the file, the first header read request
|
||||
may have to read all headers into memory and store that
|
||||
data, sorted by the location of the file data. Subsequent
|
||||
header read requests will skip forward to the beginning of
|
||||
the file data and return the corresponding header.</p>
|
||||
|
||||
<p>Read Data</p>
|
||||
|
||||
<p style="margin-left:17%;">The read data interface
|
||||
supports sparse files; this requires that each call return a
|
||||
block of data specifying the file offset and size. This may
|
||||
require you to carefully track the location so that you can
|
||||
return accurate file offsets for each read. Remember that
|
||||
the decompressor will return as much data as it has.
|
||||
Generally, you will want to request one byte, examine the
|
||||
return value to see how much data is available, and possibly
|
||||
trim that to the amount you can use. You should invoke
|
||||
consume for each block just before you return it.</p>
|
||||
|
||||
<p>Skip All Data</p>
|
||||
|
||||
<p style="margin-left:17%;">The skip data call should skip
|
||||
over all file data and trailing padding. This is called
|
||||
automatically by the API layer just before each header read.
|
||||
It is also called in response to the client calling the
|
||||
public <b>data_skip</b>() function.</p>
|
||||
|
||||
<p>Cleanup</p>
|
||||
|
||||
<p style="margin-left:17%;">On cleanup, the format should
|
||||
release all of its allocated memory.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>API Layer</b>
|
||||
<br>
|
||||
XXX to do XXX</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>WRITE ARCHITECTURE</b></p>
|
||||
|
||||
<p style="margin-left:6%;">The write API has a similar set
|
||||
of four layers: an API layer, a format layer, a compression
|
||||
layer, and an I/O layer. The registration here is much
|
||||
simpler because only one format and one compression can be
|
||||
registered at a time.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>I/O Layer and
|
||||
Client Callbacks</b> <br>
|
||||
XXX To be written XXX</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>Compression
|
||||
Layer</b> <br>
|
||||
XXX To be written XXX</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>Format
|
||||
Layer</b> <br>
|
||||
XXX To be written XXX</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>API Layer</b>
|
||||
<br>
|
||||
XXX To be written XXX</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>WRITE_DISK
|
||||
ARCHITECTURE</b></p>
|
||||
|
||||
<p style="margin-left:6%;">The write_disk API is intended
|
||||
to look just like the write API to clients. Since it does
|
||||
not handle multiple formats or compression, it is not
|
||||
layered internally.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>GENERAL SERVICES</b></p>
|
||||
|
||||
<p style="margin-left:6%;">The <b>archive_read</b>,
|
||||
<b>archive_write</b>, and <b>archive_write_disk</b> objects
|
||||
all contain an initial <b>archive</b> object which provides
|
||||
common support for a set of standard services. (Recall that
|
||||
ANSI/ISO C90 guarantees that you can cast freely between a
|
||||
pointer to a structure and a pointer to the first element of
|
||||
that structure.) The <b>archive</b> object has a magic value
|
||||
that indicates which API this object is associated with,
|
||||
slots for storing error information, and function pointers
|
||||
for virtualized API functions.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>MISCELLANEOUS NOTES</b></p>
|
||||
|
||||
<p style="margin-left:6%;">Connecting existing archiving
|
||||
libraries into libarchive is generally quite difficult. In
|
||||
particular, many existing libraries strongly assume that you
|
||||
are reading from a file; they seek forwards and backwards as
|
||||
necessary to locate various pieces of information. In
|
||||
contrast, libarchive never seeks backwards in its input,
|
||||
which sometimes requires very different approaches.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">For example,
|
||||
libarchive’s ISO9660 support operates very differently
|
||||
from most ISO9660 readers. The libarchive support utilizes a
|
||||
work-queue design that keeps a list of known entries sorted
|
||||
by their location in the input. Whenever libarchive’s
|
||||
ISO9660 implementation is asked for the next header, checks
|
||||
this list to find the next item on the disk. Directories are
|
||||
parsed when they are encountered and new items are added to
|
||||
the list. This design relies heavily on the ISO9660 image
|
||||
being optimized so that directories always occur earlier on
|
||||
the disk than the files they describe.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">Depending on the
|
||||
specific format, such approaches may not be possible. The
|
||||
ZIP format specification, for example, allows archivers to
|
||||
store key information only at the end of the file. In
|
||||
theory, it is possible to create ZIP archives that cannot be
|
||||
read without seeking. Fortunately, such archives are very
|
||||
rare, and libarchive can read most ZIP archives, though it
|
||||
cannot always extract as much information as a dedicated ZIP
|
||||
program.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SEE ALSO</b></p>
|
||||
|
||||
<p style="margin-left:6%;">archive_entry(3),
|
||||
archive_read(3), archive_write(3), archive_write_disk(3),
|
||||
libarchive(3)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>HISTORY</b></p>
|
||||
|
||||
<p style="margin-left:6%;">The <b>libarchive</b> library
|
||||
first appeared in FreeBSD 5.3.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>AUTHORS</b></p>
|
||||
|
||||
<p style="margin-left:6%;">The <b>libarchive</b> library
|
||||
was written by Tim Kientzle <kientzle@acm.org>.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">BSD
|
||||
January 26, 2011 BSD</p>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
383
dependencies/libarchive-3.4.2/doc/html/mtree.5.html
vendored
Normal file
383
dependencies/libarchive-3.4.2/doc/html/mtree.5.html
vendored
Normal file
|
@ -0,0 +1,383 @@
|
|||
<!-- Creator : groff version 1.22.3 -->
|
||||
<!-- CreationDate: Tue Feb 11 22:58:46 2020 -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="groff -Thtml, see www.gnu.org">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<meta name="Content-Style" content="text/css">
|
||||
<style type="text/css">
|
||||
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
h1 { text-align: center }
|
||||
</style>
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<p>MTREE(5) BSD File Formats Manual MTREE(5)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>NAME</b></p>
|
||||
|
||||
<p style="margin-left:6%;"><b>mtree</b> — format of
|
||||
mtree dir hierarchy files</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>DESCRIPTION</b></p>
|
||||
|
||||
<p style="margin-left:6%;">The <b>mtree</b> format is a
|
||||
textual format that describes a collection of filesystem
|
||||
objects. Such files are typically used to create or verify
|
||||
directory hierarchies.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>General
|
||||
Format</b> <br>
|
||||
An <b>mtree</b> file consists of a series of lines, each
|
||||
providing information about a single filesystem object.
|
||||
Leading whitespace is always ignored.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">When encoding
|
||||
file or pathnames, any backslash character or character
|
||||
outside of the 95 printable ASCII characters must be encoded
|
||||
as a backslash followed by three octal digits. When reading
|
||||
mtree files, any appearance of a backslash followed by three
|
||||
octal digits should be converted into the corresponding
|
||||
character.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">Each line is
|
||||
interpreted independently as one of the following types:</p>
|
||||
|
||||
<p style="margin-top: 1em">Blank</p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">Blank lines are
|
||||
ignored.</p>
|
||||
|
||||
<p style="margin-top: 1em">Comment</p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">Lines beginning
|
||||
with <b>#</b> are ignored.</p>
|
||||
|
||||
<p style="margin-top: 1em">Special</p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">Lines beginning
|
||||
with <b>/</b> are special commands that influence the
|
||||
interpretation of later lines.</p>
|
||||
|
||||
<p style="margin-top: 1em">Relative</p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">If the first
|
||||
whitespace-delimited word has no <b>/</b> characters, it is
|
||||
the name of a file in the current directory. Any relative
|
||||
entry that describes a directory changes the current
|
||||
directory.</p>
|
||||
|
||||
<p style="margin-top: 1em">dot-dot</p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">As a special
|
||||
case, a relative entry with the filename <i>..</i> changes
|
||||
the current directory to the parent directory. Options on
|
||||
dot-dot entries are always ignored.</p>
|
||||
|
||||
<p style="margin-top: 1em">Full</p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">If the first
|
||||
whitespace-delimited word has a <b>/</b> character after the
|
||||
first character, it is the pathname of a file relative to
|
||||
the starting directory. There can be multiple full entries
|
||||
describing the same file.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">Some tools that
|
||||
process <b>mtree</b> files may require that multiple lines
|
||||
describing the same file occur consecutively. It is not
|
||||
permitted for the same file to be mentioned using both a
|
||||
relative and a full file specification.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>Special
|
||||
commands</b> <br>
|
||||
Two special commands are currently defined:</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>/set</b></p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">This command
|
||||
defines default values for one or more keywords. It is
|
||||
followed on the same line by one or more
|
||||
whitespace-separated keyword definitions. These definitions
|
||||
apply to all following files that do not specify a value for
|
||||
that keyword.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>/unset</b></p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">This command
|
||||
removes any default value set by a previous <b>/set</b>
|
||||
command. It is followed on the same line by one or more
|
||||
keywords separated by whitespace.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em"><b>Keywords</b>
|
||||
<br>
|
||||
After the filename, a full or relative entry consists of
|
||||
zero or more whitespace-separated keyword definitions. Each
|
||||
such definition consists of a key from the following list
|
||||
immediately followed by an ’=’ sign and a value.
|
||||
Software programs reading mtree files should warn about
|
||||
unrecognized keywords.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">Currently
|
||||
supported keywords are as follows:</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>cksum</b></p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">The checksum of
|
||||
the file using the default algorithm specified by the
|
||||
cksum(1) utility.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>device</b></p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">The device
|
||||
number for <b>block</b> or <b>char</b> file types. The value
|
||||
must be one of the following forms:</p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><i>format</i>,<i>major</i>,<i>minor</i>[
|
||||
<br>
|
||||
,<i>subunit</i>]</p>
|
||||
|
||||
<p style="margin-left:29%;">A device with <i>major</i>,
|
||||
<i>minor</i> and optional <i>subunit</i> fields. Their
|
||||
meaning is specified by the operating’s system
|
||||
<i>format</i>. See below for valid formats.</p>
|
||||
|
||||
<p style="margin-top: 1em"><i>number</i></p>
|
||||
|
||||
<p style="margin-left:29%;">Opaque number (as stored on the
|
||||
file system).</p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">The following
|
||||
values for <i>format</i> are recognized: <b>native</b>,
|
||||
<b>386bsd</b>, <b>4bsd</b>, <b>bsdos</b>, <b>freebsd</b>,
|
||||
<b>hpux</b>, <b>isc</b>, <b>linux</b>, <b>netbsd</b>,
|
||||
<b>osf1</b>, <b>sco</b>, <b>solaris</b>, <b>sunos</b>,
|
||||
<b>svr3</b>, <b>svr4</b>, and <b>ultrix</b>.</p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">See mknod(8)
|
||||
for more details.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>contents</b></p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">The full
|
||||
pathname of a file that holds the contents of this file.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>flags</b></p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">The file flags
|
||||
as a symbolic name. See chflags(1) for information on these
|
||||
names. If no flags are to be set the string
|
||||
’’none’’ may be used to override the
|
||||
current default.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>gid</b></p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">The file group
|
||||
as a numeric value.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>gname</b></p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">The file group
|
||||
as a symbolic name.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>ignore</b></p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">Ignore any file
|
||||
hierarchy below this file.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>inode</b></p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">The inode
|
||||
number.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>link</b></p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">The target of
|
||||
the symbolic link when type=link.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>md5</b></p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">The MD5 message
|
||||
digest of the file.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>md5digest</b></p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">A synonym for
|
||||
<b>md5</b>.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>mode</b></p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">The current
|
||||
file’s permissions as a numeric (octal) or symbolic
|
||||
value.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>nlink</b></p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">The number of
|
||||
hard links the file is expected to have.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>nochange</b></p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">Make sure this
|
||||
file or directory exists but otherwise ignore all
|
||||
attributes.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>optional</b></p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">The file is
|
||||
optional; do not complain about the file if it is not in the
|
||||
file hierarchy.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>resdevice</b></p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">The
|
||||
’’resident’’ device number of the
|
||||
file, e.g. the ID of the device that contains the file. Its
|
||||
format is the same as the one for <b>device</b>.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>ripemd160digest</b></p>
|
||||
|
||||
<p style="margin-left:22%;">The RIPEMD160 message digest of
|
||||
the file.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>rmd160</b></p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">A synonym for
|
||||
<b>ripemd160digest</b>.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>rmd160digest</b></p>
|
||||
|
||||
<p style="margin-left:22%;">A synonym for
|
||||
<b>ripemd160digest</b>.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>sha1</b></p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">The FIPS 160-1
|
||||
(’’SHA-1’’) message digest of the
|
||||
file.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>sha1digest</b></p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">A synonym for
|
||||
<b>sha1</b>.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>sha256</b></p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">The FIPS 180-2
|
||||
(’’SHA-256’’) message digest of the
|
||||
file.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>sha256digest</b></p>
|
||||
|
||||
<p style="margin-left:22%;">A synonym for
|
||||
<b>sha256</b>.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>sha384</b></p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">The FIPS 180-2
|
||||
(’’SHA-384’’) message digest of the
|
||||
file.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>sha384digest</b></p>
|
||||
|
||||
<p style="margin-left:22%;">A synonym for
|
||||
<b>sha384</b>.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>sha512</b></p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">The FIPS 180-2
|
||||
(’’SHA-512’’) message digest of the
|
||||
file.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>sha512digest</b></p>
|
||||
|
||||
<p style="margin-left:22%;">A synonym for
|
||||
<b>sha512</b>.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>size</b></p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">The size, in
|
||||
bytes, of the file.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>time</b></p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">The last
|
||||
modification time of the file.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>type</b></p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">The type of the
|
||||
file; may be set to any one of the following:</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>block</b></p>
|
||||
|
||||
<p style="margin-left:37%; margin-top: 1em">block special
|
||||
device</p>
|
||||
|
||||
<p><b>char</b></p>
|
||||
|
||||
<p style="margin-left:37%; margin-top: 1em">character
|
||||
special device</p>
|
||||
|
||||
<p><b>dir</b></p>
|
||||
|
||||
<p style="margin-left:37%; margin-top: 1em">directory</p>
|
||||
|
||||
<p><b>fifo</b></p>
|
||||
|
||||
<p style="margin-left:37%; margin-top: 1em">fifo</p>
|
||||
|
||||
<p><b>file</b></p>
|
||||
|
||||
<p style="margin-left:37%; margin-top: 1em">regular
|
||||
file</p>
|
||||
|
||||
<p><b>link</b></p>
|
||||
|
||||
<p style="margin-left:37%; margin-top: 1em">symbolic
|
||||
link</p>
|
||||
|
||||
<p><b>socket</b></p>
|
||||
|
||||
<p style="margin-left:37%; margin-top: 1em">socket</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>uid</b></p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">The file owner
|
||||
as a numeric value.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>uname</b></p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">The file owner
|
||||
as a symbolic name.</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>SEE ALSO</b></p>
|
||||
|
||||
<p style="margin-left:6%;">cksum(1), find(1), mtree(8)</p>
|
||||
|
||||
<p style="margin-top: 1em"><b>HISTORY</b></p>
|
||||
|
||||
<p style="margin-left:6%;">The <b>mtree</b> utility
|
||||
appeared in 4.3BSD-Reno. The MD5 digest capability was added
|
||||
in FreeBSD 2.1, in response to the widespread use of
|
||||
programs which can spoof cksum(1). The SHA-1 and RIPEMD160
|
||||
digests were added in FreeBSD 4.0, as new attacks have
|
||||
demonstrated weaknesses in MD5. The SHA-256 digest was added
|
||||
in FreeBSD 6.0. Support for file flags was added in
|
||||
FreeBSD 4.0, and mostly comes from NetBSD. The
|
||||
’’full’’ entry format was added by
|
||||
NetBSD.</p>
|
||||
|
||||
<p style="margin-left:6%; margin-top: 1em">BSD
|
||||
September 4, 2013 BSD</p>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
1558
dependencies/libarchive-3.4.2/doc/html/tar.5.html
vendored
Normal file
1558
dependencies/libarchive-3.4.2/doc/html/tar.5.html
vendored
Normal file
File diff suppressed because it is too large
Load diff
2
dependencies/libarchive-3.4.2/doc/man/.ignore_me
vendored
Normal file
2
dependencies/libarchive-3.4.2/doc/man/.ignore_me
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
*** PLEASE DO NOT DELETE THIS FILE! ***
|
||||
This file is used to track an otherwise empty directory in git.
|
133
dependencies/libarchive-3.4.2/doc/man/Makefile
vendored
Normal file
133
dependencies/libarchive-3.4.2/doc/man/Makefile
vendored
Normal file
|
@ -0,0 +1,133 @@
|
|||
|
||||
default: all
|
||||
|
||||
|
||||
archive_entry.3: ../mdoc2man.awk ../../libarchive/archive_entry.3
|
||||
awk -f ../mdoc2man.awk < ../../libarchive/archive_entry.3 > archive_entry.3
|
||||
|
||||
archive_entry_acl.3: ../mdoc2man.awk ../../libarchive/archive_entry_acl.3
|
||||
awk -f ../mdoc2man.awk < ../../libarchive/archive_entry_acl.3 > archive_entry_acl.3
|
||||
|
||||
archive_entry_linkify.3: ../mdoc2man.awk ../../libarchive/archive_entry_linkify.3
|
||||
awk -f ../mdoc2man.awk < ../../libarchive/archive_entry_linkify.3 > archive_entry_linkify.3
|
||||
|
||||
archive_entry_misc.3: ../mdoc2man.awk ../../libarchive/archive_entry_misc.3
|
||||
awk -f ../mdoc2man.awk < ../../libarchive/archive_entry_misc.3 > archive_entry_misc.3
|
||||
|
||||
archive_entry_paths.3: ../mdoc2man.awk ../../libarchive/archive_entry_paths.3
|
||||
awk -f ../mdoc2man.awk < ../../libarchive/archive_entry_paths.3 > archive_entry_paths.3
|
||||
|
||||
archive_entry_perms.3: ../mdoc2man.awk ../../libarchive/archive_entry_perms.3
|
||||
awk -f ../mdoc2man.awk < ../../libarchive/archive_entry_perms.3 > archive_entry_perms.3
|
||||
|
||||
archive_entry_stat.3: ../mdoc2man.awk ../../libarchive/archive_entry_stat.3
|
||||
awk -f ../mdoc2man.awk < ../../libarchive/archive_entry_stat.3 > archive_entry_stat.3
|
||||
|
||||
archive_entry_time.3: ../mdoc2man.awk ../../libarchive/archive_entry_time.3
|
||||
awk -f ../mdoc2man.awk < ../../libarchive/archive_entry_time.3 > archive_entry_time.3
|
||||
|
||||
archive_read.3: ../mdoc2man.awk ../../libarchive/archive_read.3
|
||||
awk -f ../mdoc2man.awk < ../../libarchive/archive_read.3 > archive_read.3
|
||||
|
||||
archive_read_add_passphrase.3: ../mdoc2man.awk ../../libarchive/archive_read_add_passphrase.3
|
||||
awk -f ../mdoc2man.awk < ../../libarchive/archive_read_add_passphrase.3 > archive_read_add_passphrase.3
|
||||
|
||||
archive_read_data.3: ../mdoc2man.awk ../../libarchive/archive_read_data.3
|
||||
awk -f ../mdoc2man.awk < ../../libarchive/archive_read_data.3 > archive_read_data.3
|
||||
|
||||
archive_read_disk.3: ../mdoc2man.awk ../../libarchive/archive_read_disk.3
|
||||
awk -f ../mdoc2man.awk < ../../libarchive/archive_read_disk.3 > archive_read_disk.3
|
||||
|
||||
archive_read_extract.3: ../mdoc2man.awk ../../libarchive/archive_read_extract.3
|
||||
awk -f ../mdoc2man.awk < ../../libarchive/archive_read_extract.3 > archive_read_extract.3
|
||||
|
||||
archive_read_filter.3: ../mdoc2man.awk ../../libarchive/archive_read_filter.3
|
||||
awk -f ../mdoc2man.awk < ../../libarchive/archive_read_filter.3 > archive_read_filter.3
|
||||
|
||||
archive_read_format.3: ../mdoc2man.awk ../../libarchive/archive_read_format.3
|
||||
awk -f ../mdoc2man.awk < ../../libarchive/archive_read_format.3 > archive_read_format.3
|
||||
|
||||
archive_read_free.3: ../mdoc2man.awk ../../libarchive/archive_read_free.3
|
||||
awk -f ../mdoc2man.awk < ../../libarchive/archive_read_free.3 > archive_read_free.3
|
||||
|
||||
archive_read_header.3: ../mdoc2man.awk ../../libarchive/archive_read_header.3
|
||||
awk -f ../mdoc2man.awk < ../../libarchive/archive_read_header.3 > archive_read_header.3
|
||||
|
||||
archive_read_new.3: ../mdoc2man.awk ../../libarchive/archive_read_new.3
|
||||
awk -f ../mdoc2man.awk < ../../libarchive/archive_read_new.3 > archive_read_new.3
|
||||
|
||||
archive_read_open.3: ../mdoc2man.awk ../../libarchive/archive_read_open.3
|
||||
awk -f ../mdoc2man.awk < ../../libarchive/archive_read_open.3 > archive_read_open.3
|
||||
|
||||
archive_read_set_options.3: ../mdoc2man.awk ../../libarchive/archive_read_set_options.3
|
||||
awk -f ../mdoc2man.awk < ../../libarchive/archive_read_set_options.3 > archive_read_set_options.3
|
||||
|
||||
archive_util.3: ../mdoc2man.awk ../../libarchive/archive_util.3
|
||||
awk -f ../mdoc2man.awk < ../../libarchive/archive_util.3 > archive_util.3
|
||||
|
||||
archive_write.3: ../mdoc2man.awk ../../libarchive/archive_write.3
|
||||
awk -f ../mdoc2man.awk < ../../libarchive/archive_write.3 > archive_write.3
|
||||
|
||||
archive_write_blocksize.3: ../mdoc2man.awk ../../libarchive/archive_write_blocksize.3
|
||||
awk -f ../mdoc2man.awk < ../../libarchive/archive_write_blocksize.3 > archive_write_blocksize.3
|
||||
|
||||
archive_write_data.3: ../mdoc2man.awk ../../libarchive/archive_write_data.3
|
||||
awk -f ../mdoc2man.awk < ../../libarchive/archive_write_data.3 > archive_write_data.3
|
||||
|
||||
archive_write_disk.3: ../mdoc2man.awk ../../libarchive/archive_write_disk.3
|
||||
awk -f ../mdoc2man.awk < ../../libarchive/archive_write_disk.3 > archive_write_disk.3
|
||||
|
||||
archive_write_filter.3: ../mdoc2man.awk ../../libarchive/archive_write_filter.3
|
||||
awk -f ../mdoc2man.awk < ../../libarchive/archive_write_filter.3 > archive_write_filter.3
|
||||
|
||||
archive_write_finish_entry.3: ../mdoc2man.awk ../../libarchive/archive_write_finish_entry.3
|
||||
awk -f ../mdoc2man.awk < ../../libarchive/archive_write_finish_entry.3 > archive_write_finish_entry.3
|
||||
|
||||
archive_write_format.3: ../mdoc2man.awk ../../libarchive/archive_write_format.3
|
||||
awk -f ../mdoc2man.awk < ../../libarchive/archive_write_format.3 > archive_write_format.3
|
||||
|
||||
archive_write_free.3: ../mdoc2man.awk ../../libarchive/archive_write_free.3
|
||||
awk -f ../mdoc2man.awk < ../../libarchive/archive_write_free.3 > archive_write_free.3
|
||||
|
||||
archive_write_header.3: ../mdoc2man.awk ../../libarchive/archive_write_header.3
|
||||
awk -f ../mdoc2man.awk < ../../libarchive/archive_write_header.3 > archive_write_header.3
|
||||
|
||||
archive_write_new.3: ../mdoc2man.awk ../../libarchive/archive_write_new.3
|
||||
awk -f ../mdoc2man.awk < ../../libarchive/archive_write_new.3 > archive_write_new.3
|
||||
|
||||
archive_write_open.3: ../mdoc2man.awk ../../libarchive/archive_write_open.3
|
||||
awk -f ../mdoc2man.awk < ../../libarchive/archive_write_open.3 > archive_write_open.3
|
||||
|
||||
archive_write_set_options.3: ../mdoc2man.awk ../../libarchive/archive_write_set_options.3
|
||||
awk -f ../mdoc2man.awk < ../../libarchive/archive_write_set_options.3 > archive_write_set_options.3
|
||||
|
||||
archive_write_set_passphrase.3: ../mdoc2man.awk ../../libarchive/archive_write_set_passphrase.3
|
||||
awk -f ../mdoc2man.awk < ../../libarchive/archive_write_set_passphrase.3 > archive_write_set_passphrase.3
|
||||
|
||||
cpio.5: ../mdoc2man.awk ../../libarchive/cpio.5
|
||||
awk -f ../mdoc2man.awk < ../../libarchive/cpio.5 > cpio.5
|
||||
|
||||
libarchive-formats.5: ../mdoc2man.awk ../../libarchive/libarchive-formats.5
|
||||
awk -f ../mdoc2man.awk < ../../libarchive/libarchive-formats.5 > libarchive-formats.5
|
||||
|
||||
libarchive.3: ../mdoc2man.awk ../../libarchive/libarchive.3
|
||||
awk -f ../mdoc2man.awk < ../../libarchive/libarchive.3 > libarchive.3
|
||||
|
||||
libarchive_changes.3: ../mdoc2man.awk ../../libarchive/libarchive_changes.3
|
||||
awk -f ../mdoc2man.awk < ../../libarchive/libarchive_changes.3 > libarchive_changes.3
|
||||
|
||||
libarchive_internals.3: ../mdoc2man.awk ../../libarchive/libarchive_internals.3
|
||||
awk -f ../mdoc2man.awk < ../../libarchive/libarchive_internals.3 > libarchive_internals.3
|
||||
|
||||
mtree.5: ../mdoc2man.awk ../../libarchive/mtree.5
|
||||
awk -f ../mdoc2man.awk < ../../libarchive/mtree.5 > mtree.5
|
||||
|
||||
tar.5: ../mdoc2man.awk ../../libarchive/tar.5
|
||||
awk -f ../mdoc2man.awk < ../../libarchive/tar.5 > tar.5
|
||||
|
||||
bsdtar.1: ../mdoc2man.awk ../../tar/bsdtar.1
|
||||
awk -f ../mdoc2man.awk < ../../tar/bsdtar.1 > bsdtar.1
|
||||
|
||||
bsdcpio.1: ../mdoc2man.awk ../../cpio/bsdcpio.1
|
||||
awk -f ../mdoc2man.awk < ../../cpio/bsdcpio.1 > bsdcpio.1
|
||||
all: archive_entry.3 archive_entry_acl.3 archive_entry_linkify.3 archive_entry_misc.3 archive_entry_paths.3 archive_entry_perms.3 archive_entry_stat.3 archive_entry_time.3 archive_read.3 archive_read_add_passphrase.3 archive_read_data.3 archive_read_disk.3 archive_read_extract.3 archive_read_filter.3 archive_read_format.3 archive_read_free.3 archive_read_header.3 archive_read_new.3 archive_read_open.3 archive_read_set_options.3 archive_util.3 archive_write.3 archive_write_blocksize.3 archive_write_data.3 archive_write_disk.3 archive_write_filter.3 archive_write_finish_entry.3 archive_write_format.3 archive_write_free.3 archive_write_header.3 archive_write_new.3 archive_write_open.3 archive_write_set_options.3 archive_write_set_passphrase.3 cpio.5 libarchive-formats.5 libarchive.3 libarchive_changes.3 libarchive_internals.3 mtree.5 tar.5 bsdtar.1 bsdcpio.1
|
143
dependencies/libarchive-3.4.2/doc/man/archive_entry.3
vendored
Normal file
143
dependencies/libarchive-3.4.2/doc/man/archive_entry.3
vendored
Normal file
|
@ -0,0 +1,143 @@
|
|||
.TH ARCHIVE_ENTRY 3 "February 2, 2012" ""
|
||||
.SH NAME
|
||||
.ad l
|
||||
\fB\%archive_entry_clear\fP,
|
||||
\fB\%archive_entry_clone\fP,
|
||||
\fB\%archive_entry_free\fP,
|
||||
\fB\%archive_entry_new\fP
|
||||
\- functions for managing archive entry descriptions
|
||||
.SH LIBRARY
|
||||
.ad l
|
||||
Streaming Archive Library (libarchive, -larchive)
|
||||
.SH SYNOPSIS
|
||||
.ad l
|
||||
\fB#include <archive_entry.h>\fP
|
||||
.br
|
||||
\fIstruct archive_entry *\fP
|
||||
.br
|
||||
\fB\%archive_entry_clear\fP(\fI\%struct\ archive_entry\ *\fP);
|
||||
.br
|
||||
\fIstruct archive_entry *\fP
|
||||
.br
|
||||
\fB\%archive_entry_clone\fP(\fI\%struct\ archive_entry\ *\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_free\fP(\fI\%struct\ archive_entry\ *\fP);
|
||||
.br
|
||||
\fIstruct archive_entry *\fP
|
||||
.br
|
||||
\fB\%archive_entry_new\fP(\fI\%void\fP);
|
||||
.SH DESCRIPTION
|
||||
.ad l
|
||||
These functions create and manipulate data objects that
|
||||
represent entries within an archive.
|
||||
You can think of a
|
||||
Tn struct archive_entry
|
||||
as a heavy-duty version of
|
||||
Tn struct stat:
|
||||
it includes everything from
|
||||
Tn struct stat
|
||||
plus associated pathname, textual group and user names, etc.
|
||||
These objects are used by
|
||||
\fBlibarchive\fP(3)
|
||||
to represent the metadata associated with a particular
|
||||
entry in an archive.
|
||||
.SS Create and Destroy
|
||||
There are functions to allocate, destroy, clear, and copy
|
||||
\fIarchive_entry\fP
|
||||
objects:
|
||||
.RS 5
|
||||
.TP
|
||||
\fB\%archive_entry_clear\fP()
|
||||
Erases the object, resetting all internal fields to the
|
||||
same state as a newly-created object.
|
||||
This is provided to allow you to quickly recycle objects
|
||||
without thrashing the heap.
|
||||
.TP
|
||||
\fB\%archive_entry_clone\fP()
|
||||
A deep copy operation; all text fields are duplicated.
|
||||
.TP
|
||||
\fB\%archive_entry_free\fP()
|
||||
Releases the
|
||||
Tn struct archive_entry
|
||||
object.
|
||||
.TP
|
||||
\fB\%archive_entry_new\fP()
|
||||
Allocate and return a blank
|
||||
Tn struct archive_entry
|
||||
object.
|
||||
.RE
|
||||
.SS Function groups
|
||||
Due to high number of functions, the accessor functions can be found in
|
||||
man pages grouped by the purpose.
|
||||
.RS 5
|
||||
.TP
|
||||
\fBarchive_entry_acl\fP(3)
|
||||
Access Control List manipulation
|
||||
.TP
|
||||
\fBarchive_entry_paths\fP(3)
|
||||
Path name manipulation
|
||||
.TP
|
||||
\fBarchive_entry_perms\fP(3)
|
||||
User, group and mode manipulation
|
||||
.TP
|
||||
\fBarchive_entry_stat\fP(3)
|
||||
Functions not in the other groups and copying to/from
|
||||
Vt struct stat.
|
||||
.TP
|
||||
\fBarchive_entry_time\fP(3)
|
||||
Time field manipulation
|
||||
.RE
|
||||
.PP
|
||||
Most of the functions set or read entries in an object.
|
||||
Such functions have one of the following forms:
|
||||
.RS 5
|
||||
.TP
|
||||
\fB\%archive_entry_set_XXXX\fP()
|
||||
Stores the provided data in the object.
|
||||
In particular, for strings, the pointer is stored,
|
||||
not the referenced string.
|
||||
.TP
|
||||
\fB\%archive_entry_copy_XXXX\fP()
|
||||
As above, except that the referenced data is copied
|
||||
into the object.
|
||||
.TP
|
||||
\fB\%archive_entry_XXXX\fP()
|
||||
Returns the specified data.
|
||||
In the case of strings, a const-qualified pointer to
|
||||
the string is returned.
|
||||
.RE
|
||||
String data can be set or accessed as wide character strings
|
||||
or normal
|
||||
\fIchar\fP
|
||||
strings.
|
||||
The functions that use wide character strings are suffixed with
|
||||
\fB_w\fP.
|
||||
Note that these are different representations of the same data:
|
||||
For example, if you store a narrow string and read the corresponding
|
||||
wide string, the object will transparently convert formats
|
||||
using the current locale.
|
||||
Similarly, if you store a wide string and then store a
|
||||
narrow string for the same data, the previously-set wide string will
|
||||
be discarded in favor of the new data.
|
||||
.SH SEE ALSO
|
||||
.ad l
|
||||
\fBarchive_entry_acl\fP(3),
|
||||
\fBarchive_entry_paths\fP(3),
|
||||
\fBarchive_entry_perms\fP(3),
|
||||
\fBarchive_entry_time\fP(3),
|
||||
\fBlibarchive\fP(3)
|
||||
.SH HISTORY
|
||||
.ad l
|
||||
The
|
||||
\fB\%libarchive\fP
|
||||
library first appeared in
|
||||
FreeBSD 5.3.
|
||||
.SH AUTHORS
|
||||
.ad l
|
||||
-nosplit
|
||||
The
|
||||
\fB\%libarchive\fP
|
||||
library was written by
|
||||
Tim Kientzle \%<kientzle@acm.org.>
|
452
dependencies/libarchive-3.4.2/doc/man/archive_entry_acl.3
vendored
Normal file
452
dependencies/libarchive-3.4.2/doc/man/archive_entry_acl.3
vendored
Normal file
|
@ -0,0 +1,452 @@
|
|||
.TH ARCHIVE_ENTRY_ACL 3 "February 15, 2017" ""
|
||||
.SH NAME
|
||||
.ad l
|
||||
\fB\%archive_entry_acl_add_entry\fP,
|
||||
\fB\%archive_entry_acl_add_entry_w\fP,
|
||||
\fB\%archive_entry_acl_clear\fP,
|
||||
\fB\%archive_entry_acl_count\fP,
|
||||
\fB\%archive_entry_acl_from_text\fP,
|
||||
\fB\%archive_entry_acl_from_text_w\fP,
|
||||
\fB\%archive_entry_acl_next\fP,
|
||||
\fB\%archive_entry_acl_reset\fP,
|
||||
\fB\%archive_entry_acl_to_text\fP,
|
||||
\fB\%archive_entry_acl_to_text_w\fP,
|
||||
\fB\%archive_entry_acl_types\fP
|
||||
\- functions for manipulating Access Control Lists in archive entry descriptions
|
||||
.SH LIBRARY
|
||||
.ad l
|
||||
Streaming Archive Library (libarchive, -larchive)
|
||||
.SH SYNOPSIS
|
||||
.ad l
|
||||
\fB#include <archive_entry.h>\fP
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_acl_add_entry\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%int\ type\fP, \fI\%int\ permset\fP, \fI\%int\ tag\fP, \fI\%int\ qualifier\fP, \fI\%const\ char\ *name\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_acl_add_entry_w\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%int\ type\fP, \fI\%int\ permset\fP, \fI\%int\ tag\fP, \fI\%int\ qualifier\fP, \fI\%const\ wchar_t\ *name\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_acl_clear\fP(\fI\%struct\ archive_entry\ *a\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_entry_acl_count\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%int\ type\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_entry_acl_from_text\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%const\ char\ *text\fP, \fI\%int\ type\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_entry_acl_from_text_w\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%const\ wchar_t\ *text\fP, \fI\%int\ type\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_entry_acl_next\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%int\ type\fP, \fI\%int\ *ret_type\fP, \fI\%int\ *ret_permset\fP, \fI\%int\ *ret_tag\fP, \fI\%int\ *ret_qual\fP, \fI\%const\ char\ **ret_name\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_entry_acl_reset\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%int\ type\fP);
|
||||
.br
|
||||
\fIchar *\fP
|
||||
.br
|
||||
\fB\%archive_entry_acl_to_text\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%ssize_t\ *len_p\fP, \fI\%int\ flags\fP);
|
||||
.br
|
||||
\fIwchar_t *\fP
|
||||
.br
|
||||
\fB\%archive_entry_acl_to_text_w\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%ssize_t\ *len_p\fP, \fI\%int\ flags\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_entry_acl_types\fP(\fI\%struct\ archive_entry\ *a\fP);
|
||||
.SH DESCRIPTION
|
||||
.ad l
|
||||
The
|
||||
``Access Control Lists (ACLs)''
|
||||
extend the standard Unix permission model.
|
||||
The ACL interface of
|
||||
\fB\%libarchive\fP
|
||||
supports both POSIX.1e and NFSv4 style ACLs.
|
||||
Use of ACLs is restricted by
|
||||
various levels of ACL support in operating systems, file systems and archive
|
||||
formats.
|
||||
.SS POSIX.1e Access Control Lists
|
||||
A POSIX.1e ACL consists of a number of independent entries.
|
||||
Each entry specifies the permission set as a bitmask of basic permissions.
|
||||
Valid permissions in the
|
||||
are:
|
||||
.RS 5
|
||||
.TP
|
||||
.BR ARCHIVE_ENTRY_ACL_READ (.B r )
|
||||
.TP
|
||||
.BR ARCHIVE_ENTRY_ACL_WRITE (.B w )
|
||||
.TP
|
||||
.BR ARCHIVE_ENTRY_ACL_EXECUTE (.B x )
|
||||
.RE
|
||||
The permissions correspond to the normal Unix permissions.
|
||||
.PP
|
||||
The
|
||||
specifies the principal to which the permission applies.
|
||||
Valid values are:
|
||||
.RS 5
|
||||
It .BR ARCHIVE_ENTRY_ACL_USER
|
||||
The user specified by the name field.
|
||||
It .BR ARCHIVE_ENTRY_ACL_USER_OBJ
|
||||
The owner of the file.
|
||||
It .BR ARCHIVE_ENTRY_ACL_GROUP
|
||||
The group specified by the name field.
|
||||
It .BR ARCHIVE_ENTRY_ACL_GROUP_OBJ
|
||||
The group which owns the file.
|
||||
It .BR ARCHIVE_ENTRY_ACL_MASK
|
||||
The maximum permissions to be obtained via group permissions.
|
||||
It .BR ARCHIVE_ENTRY_ACL_OTHER
|
||||
Any principal who is not the file owner or a member of the owning group.
|
||||
.RE
|
||||
.PP
|
||||
The principals
|
||||
.BR ARCHIVE_ENTRY_ACL_USER_OBJ,
|
||||
.BR ARCHIVE_ENTRY_ACL_GROUP_OBJ
|
||||
and
|
||||
.BR ARCHIVE_ENTRY_ACL_OTHER
|
||||
are equivalent to user, group and other in the classic Unix permission
|
||||
model and specify non-extended ACL entries.
|
||||
.PP
|
||||
All files have an access ACL
|
||||
(.BR ARCHIVE_ENTRY_ACL_TYPE_ACCESS.)
|
||||
This specifies the permissions required for access to the file itself.
|
||||
Directories have an additional ACL
|
||||
(.BR ARCHIVE_ENTRY_ACL_TYPE_DEFAULT,)
|
||||
which controls the initial access ACL for newly-created directory entries.
|
||||
.SS NFSv4 Access Control Lists
|
||||
A NFSv4 ACL consists of multiple individual entries called Access Control
|
||||
Entries (ACEs).
|
||||
.PP
|
||||
There are four possible types of a NFSv4 ACE:
|
||||
.RS 5
|
||||
It .BR ARCHIVE_ENTRY_ACL_TYPE_ALLOW
|
||||
Allow principal to perform actions requiring given permissions.
|
||||
It .BR ARCHIVE_ENTRY_ACL_TYPE_DENY
|
||||
Prevent principal from performing actions requiring given permissions.
|
||||
It .BR ARCHIVE_ENTRY_ACL_TYPE_AUDIT
|
||||
Log access attempts by principal which require given permissions.
|
||||
It .BR ARCHIVE_ENTRY_ACL_TYPE_ALARM
|
||||
Trigger a system alarm on access attempts by principal which require given
|
||||
permissions.
|
||||
.RE
|
||||
.PP
|
||||
The
|
||||
specifies the principal to which the permission applies.
|
||||
Valid values are:
|
||||
.RS 5
|
||||
It .BR ARCHIVE_ENTRY_ACL_USER
|
||||
The user specified by the name field.
|
||||
It .BR ARCHIVE_ENTRY_ACL_USER_OBJ
|
||||
The owner of the file.
|
||||
It .BR ARCHIVE_ENTRY_ACL_GROUP
|
||||
The group specified by the name field.
|
||||
It .BR ARCHIVE_ENTRY_ACL_GROUP_OBJ
|
||||
The group which owns the file.
|
||||
It .BR ARCHIVE_ENTRY_ACL_EVERYONE
|
||||
Any principal who is not the file owner or a member of the owning group.
|
||||
.RE
|
||||
.PP
|
||||
Entries with the
|
||||
.BR ARCHIVE_ENTRY_ACL_USER
|
||||
or
|
||||
.BR ARCHIVE_ENTRY_ACL_GROUP
|
||||
tag store the user and group name in the
|
||||
string and optionally the user or group ID in the
|
||||
integer.
|
||||
.PP
|
||||
NFSv4 ACE permissions and flags are stored in the same
|
||||
bitfield.
|
||||
Some permissions share the same constant and permission character
|
||||
but have different effect on directories than on files.
|
||||
The following ACE permissions are supported:
|
||||
.RS 5
|
||||
.TP
|
||||
.BR ARCHIVE_ENTRY_ACL_READ_DATA (.B r )
|
||||
Read data (file).
|
||||
.TP
|
||||
.BR ARCHIVE_ENTRY_ACL_LIST_DIRECTORY (.B r )
|
||||
List entries (directory).
|
||||
.TP
|
||||
ARCHIVE_ENTRY_ACL_WRITE_DATA (.B w )
|
||||
Write data (file).
|
||||
.TP
|
||||
ARCHIVE_ENTRY_ACL_ADD_FILE (.B w )
|
||||
Create files (directory).
|
||||
.TP
|
||||
.BR ARCHIVE_ENTRY_ACL_EXECUTE (.B x )
|
||||
Execute file or change into a directory.
|
||||
.TP
|
||||
.BR ARCHIVE_ENTRY_ACL_APPEND_DATA (.B p )
|
||||
Append data (file).
|
||||
.TP
|
||||
.BR ARCHIVE_ENTRY_ACL_ADD_SUBDIRECTORY (.B p )
|
||||
Create subdirectories (directory).
|
||||
.TP
|
||||
.BR ARCHIVE_ENTRY_ACL_DELETE_CHILD (.B D )
|
||||
Remove files and subdirectories inside a directory.
|
||||
.TP
|
||||
.BR ARCHIVE_ENTRY_ACL_DELETE (.B d )
|
||||
Remove file or directory.
|
||||
.TP
|
||||
.BR ARCHIVE_ENTRY_ACL_READ_ATTRIBUTES (.B a )
|
||||
Read file or directory attributes.
|
||||
.TP
|
||||
.BR ARCHIVE_ENTRY_ACL_WRITE_ATTRIBUTES (.B A )
|
||||
Write file or directory attributes.
|
||||
.TP
|
||||
.BR ARCHIVE_ENTRY_ACL_READ_NAMED_ATTRS (.B R )
|
||||
Read named file or directory attributes.
|
||||
.TP
|
||||
.BR ARCHIVE_ENTRY_ACL_WRITE_NAMED_ATTRS (.B W )
|
||||
Write named file or directory attributes.
|
||||
.TP
|
||||
.BR ARCHIVE_ENTRY_ACL_READ_ACL (.B c )
|
||||
Read file or directory ACL.
|
||||
.TP
|
||||
.BR ARCHIVE_ENTRY_ACL_WRITE_ACL (.B C )
|
||||
Write file or directory ACL.
|
||||
.TP
|
||||
.BR ARCHIVE_ENTRY_ACL_WRITE_OWNER (.B o )
|
||||
Change owner of a file or directory.
|
||||
.TP
|
||||
.BR ARCHIVE_ENTRY_ACL_SYNCHRONIZE (.B s )
|
||||
Use synchronous I/O.
|
||||
.RE
|
||||
.PP
|
||||
The following NFSv4 ACL inheritance flags are supported:
|
||||
.RS 5
|
||||
.TP
|
||||
.BR ARCHIVE_ENTRY_ACL_ENTRY_FILE_INHERIT (.B f )
|
||||
Inherit parent directory ACE to files.
|
||||
.TP
|
||||
.BR ARCHIVE_ENTRY_ACL_ENTRY_DIRECTORY_INHERIT (.B d )
|
||||
Inherit parent directory ACE to subdirectories.
|
||||
.TP
|
||||
.BR ARCHIVE_ENTRY_ACL_ENTRY_INHERIT_ONLY (.B i )
|
||||
Only inherit, do not apply the permission on the directory itself.
|
||||
.TP
|
||||
.BR ARCHIVE_ENTRY_ACL_ENTRY_NO_PROPAGATE_INHERIT (.B n )
|
||||
Do not propagate inherit flags.
|
||||
Only first-level entries inherit ACLs.
|
||||
.TP
|
||||
.BR ARCHIVE_ENTRY_ACL_ENTRY_SUCCESSFUL_ACCESS (.B S )
|
||||
Trigger alarm or audit on successful access.
|
||||
.TP
|
||||
.BR ARCHIVE_ENTRY_ACL_ENTRY_FAILED_ACCESS (.B F )
|
||||
Trigger alarm or audit on failed access.
|
||||
.TP
|
||||
.BR ARCHIVE_ENTRY_ACL_ENTRY_INHERITED (.B I )
|
||||
Mark that ACE was inherited.
|
||||
.RE
|
||||
.SS Functions
|
||||
\fB\%archive_entry_acl_add_entry\fP()
|
||||
and
|
||||
\fB\%archive_entry_acl_add_entry_w\fP()
|
||||
add a single ACL entry.
|
||||
For the access ACL and non-extended principals, the classic Unix permissions
|
||||
are updated.
|
||||
An archive entry cannot contain both POSIX.1e and NFSv4 ACL entries.
|
||||
.PP
|
||||
\fB\%archive_entry_acl_clear\fP()
|
||||
removes all ACL entries and resets the enumeration pointer.
|
||||
.PP
|
||||
\fB\%archive_entry_acl_count\fP()
|
||||
counts the ACL entries that have the given type mask.
|
||||
can be the bitwise-or of
|
||||
.RS 5
|
||||
.TP
|
||||
.BR ARCHIVE_ENTRY_ACL_TYPE_ACCESS
|
||||
.TP
|
||||
.BR ARCHIVE_ENTRY_ACL_TYPE_DEFAULT
|
||||
.RE
|
||||
for POSIX.1e ACLs and
|
||||
.RS 5
|
||||
.TP
|
||||
.BR ARCHIVE_ENTRY_ACL_TYPE_ALLOW
|
||||
.TP
|
||||
.BR ARCHIVE_ENTRY_ACL_TYPE_DENY
|
||||
.TP
|
||||
.BR ARCHIVE_ENTRY_ACL_TYPE_AUDIT
|
||||
.TP
|
||||
.BR ARCHIVE_ENTRY_ACL_TYPE_ALARM
|
||||
.RE
|
||||
for NFSv4 ACLs.
|
||||
For POSIX.1e ACLs if
|
||||
.BR ARCHIVE_ENTRY_ACL_TYPE_ACCESS
|
||||
is included and at least one extended ACL entry is found,
|
||||
the three non-extended ACLs are added.
|
||||
.PP
|
||||
\fB\%archive_entry_acl_from_text\fP()
|
||||
and
|
||||
\fB\%archive_entry_acl_from_text_w\fP()
|
||||
add new
|
||||
(or merge with existing)
|
||||
ACL entries from
|
||||
(wide)
|
||||
text.
|
||||
The argument
|
||||
may take one of the following values:
|
||||
.RS 5
|
||||
.TP
|
||||
.BR ARCHIVE_ENTRY_ACL_TYPE_ACCESS
|
||||
.TP
|
||||
.BR ARCHIVE_ENTRY_ACL_TYPE_DEFAULT
|
||||
.TP
|
||||
.BR ARCHIVE_ENTRY_ACL_TYPE_NFS4
|
||||
.RE
|
||||
Supports all formats that can be created with
|
||||
\fB\%archive_entry_acl_to_text\fP()
|
||||
or respectively
|
||||
\fB\%archive_entry_acl_to_text_w\fP().
|
||||
Existing ACL entries are preserved.
|
||||
To get a clean new ACL from text
|
||||
\fB\%archive_entry_acl_clear\fP()
|
||||
must be called first.
|
||||
Entries prefixed with
|
||||
``default:''
|
||||
are treated as
|
||||
.BR ARCHIVE_ENTRY_ACL_TYPE_DEFAULT
|
||||
unless
|
||||
is
|
||||
.BR ARCHIVE_ENTRY_ACL_TYPE_NFS4.
|
||||
Invalid entries, non-parseable ACL entries and entries beginning with
|
||||
the
|
||||
Sq #
|
||||
character
|
||||
(comments)
|
||||
are skipped.
|
||||
.PP
|
||||
\fB\%archive_entry_acl_next\fP()
|
||||
return the next entry of the ACL list.
|
||||
This functions may only be called after
|
||||
\fB\%archive_entry_acl_reset\fP()
|
||||
has indicated the presence of extended ACL entries.
|
||||
.PP
|
||||
\fB\%archive_entry_acl_reset\fP()
|
||||
prepare reading the list of ACL entries with
|
||||
\fB\%archive_entry_acl_next\fP().
|
||||
The function returns 0 if no non-extended ACLs are found.
|
||||
In this case, the access permissions should be obtained by
|
||||
\fBarchive_entry_mode\fP(3)
|
||||
or set using
|
||||
\fBchmod\fP(2).
|
||||
Otherwise, the function returns the same value as
|
||||
\fB\%archive_entry_acl_count\fP().
|
||||
.PP
|
||||
\fB\%archive_entry_acl_to_text\fP()
|
||||
and
|
||||
\fB\%archive_entry_acl_to_text_w\fP()
|
||||
convert the ACL entries for the given type into a
|
||||
(wide)
|
||||
string of ACL entries separated by newline.
|
||||
If the pointer
|
||||
is not NULL, then the function shall return the length of the string
|
||||
(not including the NULL terminator)
|
||||
in the location pointed to by
|
||||
.
|
||||
The
|
||||
argument is a bitwise-or.
|
||||
.PP
|
||||
The following flags are effective only on POSIX.1e ACL:
|
||||
.RS 5
|
||||
.TP
|
||||
.BR ARCHIVE_ENTRY_ACL_TYPE_ACCESS
|
||||
Output access ACLs.
|
||||
.TP
|
||||
.BR ARCHIVE_ENTRY_ACL_TYPE_DEFAULT
|
||||
Output POSIX.1e default ACLs.
|
||||
.TP
|
||||
.BR ARCHIVE_ENTRY_ACL_STYLE_MARK_DEFAULT
|
||||
Prefix each default ACL entry with the word
|
||||
``default:''.
|
||||
.TP
|
||||
.BR ARCHIVE_ENTRY_ACL_STYLE_SOLARIS
|
||||
The mask and other ACLs don not contain a double colon.
|
||||
.RE
|
||||
.PP
|
||||
The following flags are effecive only on NFSv4 ACL:
|
||||
.RS 5
|
||||
.TP
|
||||
.BR ARCHIVE_ENTRY_ACL_STYLE_COMPACT
|
||||
Do not output minus characters for unset permissions and flags in NFSv4 ACL
|
||||
permission and flag fields.
|
||||
.RE
|
||||
.PP
|
||||
The following flags are effective on both POSIX.1e and NFSv4 ACL:
|
||||
.RS 5
|
||||
.TP
|
||||
.BR ARCHIVE_ENTRY_ACL_STYLE_EXTRA_ID
|
||||
Add an additional colon-separated field containing the user or group id.
|
||||
.TP
|
||||
.BR ARCHIVE_ENTRY_ACL_STYLE_SEPARATOR_COMMA
|
||||
Separate ACL entries with comma instead of newline.
|
||||
.RE
|
||||
.PP
|
||||
If the archive entry contains NFSv4 ACLs, all types of NFSv4 ACLs are returned.
|
||||
It the entry contains POSIX.1e ACLs and none of the flags
|
||||
.BR ARCHIVE_ENTRY_ACL_TYPE_ACCESS
|
||||
or
|
||||
.BR ARCHIVE_ENTRY_ACL_TYPE_DEFAULT
|
||||
are specified, both access and default entries are returned and default entries
|
||||
are prefixed with
|
||||
``default:''.
|
||||
.PP
|
||||
\fB\%archive_entry_acl_types\fP()
|
||||
get ACL entry types contained in an archive entry's ACL.
|
||||
As POSIX.1e and NFSv4
|
||||
ACL entries cannot be mixed, this function is a very efficient way to detect if
|
||||
an ACL already contains POSIX.1e or NFSv4 ACL entries.
|
||||
.SH RETURN VALUES
|
||||
.ad l
|
||||
\fB\%archive_entry_acl_count\fP()
|
||||
and
|
||||
\fB\%archive_entry_acl_reset\fP()
|
||||
returns the number of ACL entries that match the given type mask.
|
||||
For POSIX.1e ACLS if the type mask includes
|
||||
.BR ARCHIVE_ENTRY_ACL_TYPE_ACCESS
|
||||
and at least one extended ACL entry exists, the three classic Unix
|
||||
permissions are counted.
|
||||
.PP
|
||||
\fB\%archive_entry_acl_from_text\fP()
|
||||
and
|
||||
\fB\%archive_entry_acl_from_text_w\fP()
|
||||
return
|
||||
.BR ARCHIVE_OK
|
||||
if all entries were successfully parsed and
|
||||
.BR ARCHIVE_WARN
|
||||
if one or more entries were invalid or non-parseable.
|
||||
.PP
|
||||
\fB\%archive_entry_acl_next\fP()
|
||||
returns
|
||||
.BR ARCHIVE_OK
|
||||
on success,
|
||||
.BR ARCHIVE_EOF
|
||||
if no more ACL entries exist
|
||||
and
|
||||
.BR ARCHIVE_WARN
|
||||
if
|
||||
\fB\%archive_entry_acl_reset\fP()
|
||||
has not been called first.
|
||||
.PP
|
||||
\fB\%archive_entry_acl_to_text\fP()
|
||||
returns a string representing the ACL entries matching the given type and
|
||||
flags on success or NULL on error.
|
||||
.PP
|
||||
\fB\%archive_entry_acl_to_text_w\fP()
|
||||
returns a wide string representing the ACL entries matching the given type
|
||||
and flags on success or NULL on error.
|
||||
.PP
|
||||
\fB\%archive_entry_acl_types\fP()
|
||||
returns a bitmask of ACL entry types or 0 if archive entry has no ACL entries.
|
||||
.SH SEE ALSO
|
||||
.ad l
|
||||
\fBarchive_entry\fP(3),
|
||||
\fBlibarchive\fP(3)
|
203
dependencies/libarchive-3.4.2/doc/man/archive_entry_linkify.3
vendored
Normal file
203
dependencies/libarchive-3.4.2/doc/man/archive_entry_linkify.3
vendored
Normal file
|
@ -0,0 +1,203 @@
|
|||
.TH ARCHIVE_ENTRY_LINKIFY 3 "February 2, 2012" ""
|
||||
.SH NAME
|
||||
.ad l
|
||||
\fB\%archive_entry_linkresolver\fP,
|
||||
\fB\%archive_entry_linkresolver_new\fP,
|
||||
\fB\%archive_entry_linkresolver_set_strategy\fP,
|
||||
\fB\%archive_entry_linkresolver_free\fP,
|
||||
\fB\%archive_entry_linkify\fP
|
||||
\- hardlink resolver functions
|
||||
.SH LIBRARY
|
||||
.ad l
|
||||
Streaming Archive Library (libarchive, -larchive)
|
||||
.SH SYNOPSIS
|
||||
.ad l
|
||||
\fB#include <archive_entry.h>\fP
|
||||
.br
|
||||
\fIstruct archive_entry_linkresolver *\fP
|
||||
.br
|
||||
\fB\%archive_entry_linkresolver_new\fP(\fI\%void\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_linkresolver_set_strategy\fP(\fI\%struct\ archive_entry_linkresolver\ *resolver\fP, \fI\%int\ format\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_linkresolver_free\fP(\fI\%struct\ archive_entry_linkresolver\ *resolver\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_linkify\fP(\fI\%struct\ archive_entry_linkresolver\ *resolver\fP, \fI\%struct\ archive_entry\ **entry\fP, \fI\%struct\ archive_entry\ **sparse\fP);
|
||||
.SH DESCRIPTION
|
||||
.ad l
|
||||
Programs that want to create archives have to deal with hardlinks.
|
||||
Hardlinks are handled in different ways by the archive formats.
|
||||
The basic strategies are:
|
||||
.RS 5
|
||||
.IP 1.
|
||||
Ignore hardlinks and store the body for each reference (old cpio, zip).
|
||||
.IP 2.
|
||||
Store the body the first time an inode is seen (ustar, pax).
|
||||
.IP 3.
|
||||
Store the body the last time an inode is seen (new cpio).
|
||||
.RE
|
||||
.PP
|
||||
The
|
||||
\fB\%archive_entry_linkresolver\fP
|
||||
functions help by providing a unified interface and handling the complexity
|
||||
behind the scene.
|
||||
.PP
|
||||
The
|
||||
\fB\%archive_entry_linkresolver\fP
|
||||
functions assume that
|
||||
Vt archive_entry
|
||||
instances have valid nlinks, inode and device values.
|
||||
The inode and device value is used to match entries.
|
||||
The nlinks value is used to determined if all references have been found and
|
||||
if the internal references can be recycled.
|
||||
.PP
|
||||
The
|
||||
\fB\%archive_entry_linkresolver_new\fP()
|
||||
function allocates a new link resolver.
|
||||
The instance can be freed using
|
||||
\fB\%archive_entry_linkresolver_free\fP().
|
||||
All deferred entries are flushed and the internal storage is freed.
|
||||
.PP
|
||||
The
|
||||
\fB\%archive_entry_linkresolver_set_strategy\fP()
|
||||
function selects the optimal hardlink strategy for the given format.
|
||||
The format code can be obtained from
|
||||
\fBarchive_format\fP(3).
|
||||
The function can be called more than once, but it is recommended to
|
||||
flush all deferred entries first.
|
||||
.PP
|
||||
The
|
||||
\fB\%archive_entry_linkify\fP()
|
||||
function is the core of
|
||||
\fB\%archive_entry_linkresolver\fP.
|
||||
The
|
||||
\fB\%entry\fP()
|
||||
argument points to the
|
||||
Vt archive_entry
|
||||
that should be written.
|
||||
Depending on the strategy one of the following actions is taken:
|
||||
.RS 5
|
||||
.IP 1.
|
||||
For the simple archive formats
|
||||
\fI*entry\fP
|
||||
is left unmodified and
|
||||
\fI*sparse\fP
|
||||
is set to
|
||||
.BR NULL.
|
||||
.IP 2.
|
||||
For tar like archive formats,
|
||||
\fI*sparse\fP
|
||||
is set to
|
||||
.BR NULL.
|
||||
If
|
||||
\fI*entry\fP
|
||||
is
|
||||
.BR NULL,
|
||||
no action is taken.
|
||||
If the hardlink count of
|
||||
\fI*entry\fP
|
||||
is larger than 1 and the file type is a regular file or symbolic link,
|
||||
the internal list is searched for a matching inode.
|
||||
If such an inode is found, the link count is decremented and the file size
|
||||
of
|
||||
\fI*entry\fP
|
||||
is set to 0 to notify that no body should be written.
|
||||
If no such inode is found, a copy of the entry is added to the internal cache
|
||||
with a link count reduced by one.
|
||||
.IP 3.
|
||||
For new cpio like archive formats a value for
|
||||
\fI*entry\fP
|
||||
of
|
||||
.BR NULL
|
||||
is used to flush deferred entries.
|
||||
In that case
|
||||
\fI*entry\fP
|
||||
is set to an arbitrary deferred entry and the entry itself is removed from the
|
||||
internal list.
|
||||
If the internal list is empty,
|
||||
\fI*entry\fP
|
||||
is set to
|
||||
.BR NULL.
|
||||
In either case,
|
||||
\fI*sparse\fP
|
||||
is set to
|
||||
.BR NULL
|
||||
and the function returns.
|
||||
If the hardlink count of
|
||||
\fI*entry\fP
|
||||
is one or the file type is a directory or device,
|
||||
\fI*sparse\fP
|
||||
is set to
|
||||
.BR NULL
|
||||
and no further action is taken.
|
||||
Otherwise, the internal list is searched for a matching inode.
|
||||
If such an inode is not found, the entry is added to the internal list,
|
||||
both
|
||||
\fI*entry\fP
|
||||
and
|
||||
\fI*sparse\fP
|
||||
are set to
|
||||
.BR NULL
|
||||
and the function returns.
|
||||
If such an inode is found, the link count is decremented.
|
||||
If it remains larger than one, the existing entry on the internal list
|
||||
is swapped with
|
||||
\fI*entry\fP
|
||||
after retaining the link count.
|
||||
The existing entry is returned in
|
||||
\fI*entry\fP.
|
||||
If the link count reached one, the new entry is also removed from the
|
||||
internal list and returned in
|
||||
\fI*sparse\fP.
|
||||
Otherwise
|
||||
\fI*sparse\fP
|
||||
is set to
|
||||
.BR NULL.
|
||||
.RE
|
||||
.PP
|
||||
The general usage is therefore:
|
||||
.RS 5
|
||||
.IP 1.
|
||||
For each new archive entry, call
|
||||
\fB\%archive_entry_linkify\fP().
|
||||
.IP 2.
|
||||
Keep in mind that the entries returned may have a size of 0 now.
|
||||
.IP 3.
|
||||
If
|
||||
\fI*entry\fP
|
||||
is not
|
||||
.BR NULL,
|
||||
archive it.
|
||||
.IP 4.
|
||||
If
|
||||
\fI*sparse\fP
|
||||
is not
|
||||
.BR NULL,
|
||||
archive it.
|
||||
.IP 5.
|
||||
After all entries have been written to disk, call
|
||||
\fB\%archive_entry_linkify\fP()
|
||||
with
|
||||
\fI*entry\fP
|
||||
set to
|
||||
.BR NULL
|
||||
and archive the returned entry as long as it is not
|
||||
.BR NULL.
|
||||
.RE
|
||||
.SH RETURN VALUES
|
||||
.ad l
|
||||
\fB\%archive_entry_linkresolver_new\fP()
|
||||
returns
|
||||
.BR NULL
|
||||
on
|
||||
\fBmalloc\fP(3)
|
||||
failures.
|
||||
.SH SEE ALSO
|
||||
.ad l
|
||||
\fBarchive_entry\fP(3)
|
49
dependencies/libarchive-3.4.2/doc/man/archive_entry_misc.3
vendored
Normal file
49
dependencies/libarchive-3.4.2/doc/man/archive_entry_misc.3
vendored
Normal file
|
@ -0,0 +1,49 @@
|
|||
.TH ARCHIVE_ENTRY_MISC 3 "April 15, 2019" ""
|
||||
.SH NAME
|
||||
.ad l
|
||||
\fB\%archive_entry_symlink_type\fP,
|
||||
\fB\%archive_entry_set_symlink_type\fP
|
||||
\- miscellaneous functions for manipulating properties of archive_entry
|
||||
.SH LIBRARY
|
||||
.ad l
|
||||
Streaming Archive Library (libarchive, -larchive)
|
||||
.SH SYNOPSIS
|
||||
.ad l
|
||||
\fB#include <archive_entry.h>\fP
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_entry_symlink_type\fP(\fI\%struct\ archive_entry\ *a\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_set_symlink_type\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%int\fP);
|
||||
.SH DESCRIPTION
|
||||
.ad l
|
||||
The function
|
||||
\fB\%archive_entry_symlink_type\fP()
|
||||
returns and the function
|
||||
\fB\%archive_entry_set_symlink_type\fP()
|
||||
sets the type of the symbolic link stored in an archive entry.
|
||||
These functions
|
||||
have special meaning on operating systems that support multiple symbolic link
|
||||
types (e.g. Microsoft Windows).
|
||||
.PP
|
||||
Supported values are:
|
||||
.RS 5
|
||||
.TP
|
||||
AE_SYMLINK_TYPE_UNDEFINED
|
||||
Symbolic link target type is not defined (default on unix systems)
|
||||
.TP
|
||||
AE_SYMLINK_TYPE_FILE
|
||||
Symbolic link points to a file
|
||||
.TP
|
||||
AE_SYMLINK_TYPE_DIRECTORY
|
||||
Symbolic link points to a directory
|
||||
.RE
|
||||
.SH SEE ALSO
|
||||
.ad l
|
||||
\fBarchive_entry\fP(3),
|
||||
\fBarchive_entry_paths\fP(3),
|
||||
\fBarchive_entry_stat\fP(3),
|
||||
\fBlibarchive\fP(3)
|
188
dependencies/libarchive-3.4.2/doc/man/archive_entry_paths.3
vendored
Normal file
188
dependencies/libarchive-3.4.2/doc/man/archive_entry_paths.3
vendored
Normal file
|
@ -0,0 +1,188 @@
|
|||
.TH ARCHIVE_ENTRY_PATHS 3 "February 2, 2012" ""
|
||||
.SH NAME
|
||||
.ad l
|
||||
\fB\%archive_entry_hardlink\fP,
|
||||
\fB\%archive_entry_hardlink_w\fP,
|
||||
\fB\%archive_entry_set_hardlink\fP,
|
||||
\fB\%archive_entry_copy_hardlink\fP,
|
||||
\fB\%archive_entry_copy_hardlink_w\fP,
|
||||
\fB\%archive_entry_update_hardlink_utf8\fP,
|
||||
\fB\%archive_entry_set_link\fP,
|
||||
\fB\%archive_entry_copy_link\fP,
|
||||
\fB\%archive_entry_copy_link_w\fP,
|
||||
\fB\%archive_entry_update_link_utf8\fP,
|
||||
\fB\%archive_entry_pathname\fP,
|
||||
\fB\%archive_entry_pathname_w\fP,
|
||||
\fB\%archive_entry_set_pathname\fP,
|
||||
\fB\%archive_entry_copy_pathname\fP,
|
||||
\fB\%archive_entry_copy_pathname_w\fP,
|
||||
\fB\%archive_entry_update_pathname_utf8\fP,
|
||||
\fB\%archive_entry_sourcepath\fP,
|
||||
\fB\%archive_entry_copy_sourcepath\fP,
|
||||
\fB\%archive_entry_symlink\fP,
|
||||
\fB\%archive_entry_symlink_w\fP,
|
||||
\fB\%archive_entry_set_symlink\fP,
|
||||
\fB\%archive_entry_copy_symlink\fP,
|
||||
\fB\%archive_entry_copy_symlink_w\fP,
|
||||
\fB\%archive_entry_update_symlink_utf8\fP
|
||||
\- functions for manipulating path names in archive entry descriptions
|
||||
.SH LIBRARY
|
||||
.ad l
|
||||
Streaming Archive Library (libarchive, -larchive)
|
||||
.SH SYNOPSIS
|
||||
.ad l
|
||||
\fB#include <archive_entry.h>\fP
|
||||
.br
|
||||
\fIconst char *\fP
|
||||
.br
|
||||
\fB\%archive_entry_hardlink\fP(\fI\%struct\ archive_entry\ *a\fP);
|
||||
.br
|
||||
\fIconst wchar_t *\fP
|
||||
.br
|
||||
\fB\%archive_entry_hardlink_w\fP(\fI\%struct\ archive_entry\ *a\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_set_hardlink\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%const\ char\ *path\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_copy_hardlink\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%const\ char\ *path\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_copy_hardlink_w\fP(\fI\%struct\ archive_entry\ *a\ \fP, \fI\%const\fP, \fI\%wchar_t\fP, \fI\%*path"\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_entry_update_hardlink_utf8\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%const\ char\ *path\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_set_link\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%const\ char\ *path\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_copy_link\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%\ const\ char\ *path\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_copy_link_w\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%\ const\ wchar_t\ *path\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_entry_update_link_utf8\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%\ const\ char\ *path\fP);
|
||||
.br
|
||||
\fIconst char *\fP
|
||||
.br
|
||||
\fB\%archive_entry_pathname\fP(\fI\%struct\ archive_entry\ *a\fP);
|
||||
.br
|
||||
\fIconst wchar_t *\fP
|
||||
.br
|
||||
\fB\%archive_entry_pathname_w\fP(\fI\%struct\ archive_entry\ *a\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_set_pathname\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%const\ char\ *path\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_copy_pathname\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%const\ char\ *path\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_copy_pathname_w\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%const\ wchar_t\ *path\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_entry_update_pathname_utf8\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%const\ char\ *path\fP);
|
||||
.br
|
||||
\fIconst char *\fP
|
||||
.br
|
||||
\fB\%archive_entry_sourcepath\fP(\fI\%struct\ archive_entry\ *a\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_copy_sourcepath\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%const\ char\ *path\fP);
|
||||
.br
|
||||
\fIconst char *\fP
|
||||
.br
|
||||
\fB\%archive_entry_symlink\fP(\fI\%struct\ archive_entry\ *a\fP);
|
||||
.br
|
||||
\fIconst wchar_t *\fP
|
||||
.br
|
||||
\fB\%archive_entry_symlink_w\fP(\fI\%struct\ archive_entry\ *a\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_set_symlink\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%const\ char\ *path\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_copy_symlink\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%const\ char\ *path\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_copy_symlink_w\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%const\ wchar_t\ *path\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_entry_update_symlink_utf8\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%const\ char\ *path\fP);
|
||||
.SH DESCRIPTION
|
||||
.ad l
|
||||
Path names supported by
|
||||
\fBarchive_entry\fP(3):
|
||||
.RS 5
|
||||
.TP
|
||||
hardlink
|
||||
Destination of the hardlink.
|
||||
.TP
|
||||
link
|
||||
Update only.
|
||||
For a symlink, update the destination.
|
||||
Otherwise, make the entry a hardlink and alter
|
||||
the destination for that.
|
||||
.TP
|
||||
pathname
|
||||
Path in the archive
|
||||
.TP
|
||||
sourcepath
|
||||
Path on the disk for use by
|
||||
\fBarchive_read_disk\fP(3).
|
||||
.TP
|
||||
symlink
|
||||
Destination of the symbolic link.
|
||||
.RE
|
||||
.PP
|
||||
Path names can be provided in one of three different ways:
|
||||
.RS 5
|
||||
.TP
|
||||
char *
|
||||
Multibyte strings in the current locale.
|
||||
.TP
|
||||
wchar_t *
|
||||
Wide character strings in the current locale.
|
||||
The accessor functions are named
|
||||
\fB\%XXX_w\fP().
|
||||
.TP
|
||||
UTF-8
|
||||
Unicode strings encoded as UTF-8.
|
||||
These are convenience functions to update both the multibyte and wide
|
||||
character strings at the same time.
|
||||
.RE
|
||||
.PP
|
||||
The sourcepath is a pure filesystem concept and never stored in an
|
||||
archive directly.
|
||||
.PP
|
||||
For that reason, it is only available as multibyte string.
|
||||
The link path is a convenience function for conditionally setting
|
||||
hardlink or symlink destination.
|
||||
It doesn't have a corresponding get accessor function.
|
||||
.PP
|
||||
\fB\%archive_entry_set_XXX\fP()
|
||||
is an alias for
|
||||
\fB\%archive_entry_copy_XXX\fP().
|
||||
.SH SEE ALSO
|
||||
.ad l
|
||||
\fBarchive_entry\fP(3),
|
||||
\fBlibarchive\fP(3)
|
231
dependencies/libarchive-3.4.2/doc/man/archive_entry_perms.3
vendored
Normal file
231
dependencies/libarchive-3.4.2/doc/man/archive_entry_perms.3
vendored
Normal file
|
@ -0,0 +1,231 @@
|
|||
.TH ARCHIVE_ENTRY_PERMS 3 "February 2, 2012" ""
|
||||
.SH NAME
|
||||
.ad l
|
||||
\fB\%archive_entry_gid\fP,
|
||||
\fB\%archive_entry_set_gid\fP,
|
||||
\fB\%archive_entry_uid\fP,
|
||||
\fB\%archive_entry_set_uid\fP,
|
||||
\fB\%archive_entry_perm\fP,
|
||||
\fB\%archive_entry_set_perm\fP,
|
||||
\fB\%archive_entry_strmode\fP,
|
||||
\fB\%archive_entry_uname\fP,
|
||||
\fB\%archive_entry_uname_w\fP,
|
||||
\fB\%archive_entry_set_uname\fP,
|
||||
\fB\%archive_entry_copy_uname\fP,
|
||||
\fB\%archive_entry_copy_uname_w\fP,
|
||||
\fB\%archive_entry_update_uname_utf8\fP,
|
||||
\fB\%archive_entry_gname\fP,
|
||||
\fB\%archive_entry_gname_w\fP,
|
||||
\fB\%archive_entry_set_gname\fP,
|
||||
\fB\%archive_entry_copy_gname\fP,
|
||||
\fB\%archive_entry_copy_gname_w\fP,
|
||||
\fB\%archive_entry_update_gname_utf8\fP,
|
||||
\fB\%archive_entry_fflags\fP,
|
||||
\fB\%archive_entry_fflags_text\fP,
|
||||
\fB\%archive_entry_set_fflags\fP,
|
||||
\fB\%archive_entry_copy_fflags_text\fP,
|
||||
\fB\%archive_entry_copy_fflags_text_w\fP
|
||||
\- functions for manipulating ownership and permissions in archive entry descriptions
|
||||
.SH LIBRARY
|
||||
.ad l
|
||||
Streaming Archive Library (libarchive, -larchive)
|
||||
.SH SYNOPSIS
|
||||
.ad l
|
||||
\fB#include <archive_entry.h>\fP
|
||||
.br
|
||||
\fIgid_t\fP
|
||||
.br
|
||||
\fB\%archive_entry_gid\fP(\fI\%struct\ archive_entry\ *a\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_set_gid\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%gid_t\ gid\fP);
|
||||
.br
|
||||
\fIuid_t\fP
|
||||
.br
|
||||
\fB\%archive_entry_uid\fP(\fI\%struct\ archive_entry\ *a\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_set_uid\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%uid_t\ uid\fP);
|
||||
.br
|
||||
\fImode_t\fP
|
||||
.br
|
||||
\fB\%archive_entry_perm\fP(\fI\%struct\ archive_entry\ *a\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_set_perm\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%mode_t\ mode\fP);
|
||||
.br
|
||||
\fIconst char *\fP
|
||||
.br
|
||||
\fB\%archive_entry_strmode\fP(\fI\%struct\ archive_entry\ *a\fP);
|
||||
.br
|
||||
\fIconst char *\fP
|
||||
.br
|
||||
\fB\%archive_entry_gname\fP(\fI\%struct\ archive_entry\ *a\fP);
|
||||
.br
|
||||
\fIconst wchar_t *\fP
|
||||
.br
|
||||
\fB\%archive_entry_gname_w\fP(\fI\%struct\ archive_entry\ *a\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_set_gname\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%const\ char\ *a\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_copy_gname\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%const\ char\ *name\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_copy_gname_w\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%const\ wchar_t\ *name\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_entry_update_gname_utf8\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%const\ char\ *name\fP);
|
||||
.br
|
||||
\fIconst char *\fP
|
||||
.br
|
||||
\fB\%archive_entry_uname\fP(\fI\%struct\ archive_entry\ *a\fP);
|
||||
.br
|
||||
\fIconst wchar_t *\fP
|
||||
.br
|
||||
\fB\%archive_entry_uname_w\fP(\fI\%struct\ archive_entry\ *a\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_set_uname\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%const\ char\ *name\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_copy_uname\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%const\ char\ *name\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_copy_uname_w\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%const\ wchar_t\ *name\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_entry_update_uname_utf8\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%const\ char\ *name\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_fflags\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%unsigned\ long\ *set_bits\fP, \fI\%unsigned\ long\ *clear_bits\fP);
|
||||
.br
|
||||
\fIconst char *\fP
|
||||
.br
|
||||
\fB\%archive_entry_fflags_text\fP(\fI\%struct\ archive_entry\ *a\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_set_fflags\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%unsigned\ long\ set_bits\fP, \fI\%unsigned\ long\ clear_bits\fP);
|
||||
.br
|
||||
\fIconst char *\fP
|
||||
.br
|
||||
\fB\%archive_entry_copy_fflags_text\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%const\ char\ *text\fP);
|
||||
.br
|
||||
\fIconst wchar_t *\fP
|
||||
.br
|
||||
\fB\%archive_entry_copy_fflags_text_w\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%const\ wchar_t\ *text\fP);
|
||||
.SH DESCRIPTION
|
||||
.ad l
|
||||
.SS User id, group id and mode
|
||||
The functions
|
||||
\fB\%archive_entry_uid\fP(),
|
||||
\fB\%archive_entry_gid\fP(),
|
||||
and
|
||||
\fB\%archive_entry_perm\fP()
|
||||
can be used to extract the user id, group id and permission from the given entry.
|
||||
The corresponding functions
|
||||
\fB\%archive_entry_set_uid\fP(),
|
||||
\fB\%archive_entry_set_gid\fP(),
|
||||
and
|
||||
\fB\%archive_entry_set_perm\fP()
|
||||
store the given user id, group id and permission in the entry.
|
||||
The permission is also set as a side effect of calling
|
||||
\fB\%archive_entry_set_mode\fP().
|
||||
.PP
|
||||
\fB\%archive_entry_strmode\fP()
|
||||
returns a string representation of the permission as used by the long mode of
|
||||
\fBls\fP(1).
|
||||
.SS User and group name
|
||||
User and group names can be provided in one of three different ways:
|
||||
.RS 5
|
||||
.TP
|
||||
char *
|
||||
Multibyte strings in the current locale.
|
||||
.TP
|
||||
wchar_t *
|
||||
Wide character strings in the current locale.
|
||||
The accessor functions are named
|
||||
\fB\%XXX_w\fP().
|
||||
.TP
|
||||
UTF-8
|
||||
Unicode strings encoded as UTF-8.
|
||||
These are convenience functions to update both the multibyte and wide
|
||||
character strings at the same time.
|
||||
.RE
|
||||
.PP
|
||||
\fB\%archive_entry_set_XXX\fP()
|
||||
is an alias for
|
||||
\fB\%archive_entry_copy_XXX\fP().
|
||||
.SS File Flags
|
||||
File flags are transparently converted between a bitmap
|
||||
representation and a textual format.
|
||||
For example, if you set the bitmap and ask for text, the library
|
||||
will build a canonical text format.
|
||||
However, if you set a text format and request a text format,
|
||||
you will get back the same text, even if it is ill-formed.
|
||||
If you need to canonicalize a textual flags string, you should first set the
|
||||
text form, then request the bitmap form, then use that to set the bitmap form.
|
||||
Setting the bitmap format will clear the internal text representation
|
||||
and force it to be reconstructed when you next request the text form.
|
||||
.PP
|
||||
The bitmap format consists of two integers, one containing bits
|
||||
that should be set, the other specifying bits that should be
|
||||
cleared.
|
||||
Bits not mentioned in either bitmap will be ignored.
|
||||
Usually, the bitmap of bits to be cleared will be set to zero.
|
||||
In unusual circumstances, you can force a fully-specified set
|
||||
of file flags by setting the bitmap of flags to clear to the complement
|
||||
of the bitmap of flags to set.
|
||||
(This differs from
|
||||
\fBfflagstostr\fP(3),
|
||||
which only includes names for set bits.)
|
||||
Converting a bitmap to a textual string is a platform-specific
|
||||
operation; bits that are not meaningful on the current platform
|
||||
will be ignored.
|
||||
.PP
|
||||
The canonical text format is a comma-separated list of flag names.
|
||||
The
|
||||
\fB\%archive_entry_copy_fflags_text\fP()
|
||||
and
|
||||
\fB\%archive_entry_copy_fflags_text_w\fP()
|
||||
functions parse the provided text and set the internal bitmap values.
|
||||
This is a platform-specific operation; names that are not meaningful
|
||||
on the current platform will be ignored.
|
||||
The function returns a pointer to the start of the first name that was not
|
||||
recognized, or NULL if every name was recognized.
|
||||
Note that every name \(em including names that follow an unrecognized
|
||||
name \(em will be evaluated, and the bitmaps will be set to reflect
|
||||
every name that is recognized.
|
||||
(In particular, this differs from
|
||||
\fBstrtofflags\fP(3),
|
||||
which stops parsing at the first unrecognized name.)
|
||||
.SH SEE ALSO
|
||||
.ad l
|
||||
\fBarchive_entry\fP(3),
|
||||
\fBarchive_entry_acl\fP(3),
|
||||
\fBarchive_read_disk\fP(3),
|
||||
\fBarchive_write_disk\fP(3),
|
||||
\fBlibarchive\fP(3)
|
||||
.SH BUGS
|
||||
.ad l
|
||||
The platform types
|
||||
Vt uid_t
|
||||
and
|
||||
Vt gid_t
|
||||
are often 16 or 32 bit wide.
|
||||
In this case it is possible that the ids can not be correctly restored
|
||||
from archives and get truncated.
|
320
dependencies/libarchive-3.4.2/doc/man/archive_entry_stat.3
vendored
Normal file
320
dependencies/libarchive-3.4.2/doc/man/archive_entry_stat.3
vendored
Normal file
|
@ -0,0 +1,320 @@
|
|||
.TH ARCHIVE_ENTRY_STAT 3 "February 2, 2012" ""
|
||||
.SH NAME
|
||||
.ad l
|
||||
\fB\%archive_entry_stat\fP,
|
||||
\fB\%archive_entry_copy_stat\fP,
|
||||
\fB\%archive_entry_filetype\fP,
|
||||
\fB\%archive_entry_set_filetype\fP,
|
||||
\fB\%archive_entry_mode\fP,
|
||||
\fB\%archive_entry_set_mode\fP,
|
||||
\fB\%archive_entry_size\fP,
|
||||
\fB\%archive_entry_size_is_set\fP,
|
||||
\fB\%archive_entry_set_size\fP,
|
||||
\fB\%archive_entry_unset_size\fP,
|
||||
\fB\%archive_entry_dev\fP,
|
||||
\fB\%archive_entry_set_dev\fP,
|
||||
\fB\%archive_entry_dev_is_set\fP,
|
||||
\fB\%archive_entry_devmajor\fP,
|
||||
\fB\%archive_entry_set_devmajor\fP,
|
||||
\fB\%archive_entry_devminor\fP,
|
||||
\fB\%archive_entry_set_devminor\fP,
|
||||
\fB\%archive_entry_ino\fP,
|
||||
\fB\%archive_entry_set_ino\fP,
|
||||
\fB\%archive_entry_ino_is_set\fP,
|
||||
\fB\%archive_entry_ino64\fP,
|
||||
\fB\%archive_entry_set_ino64\fP,
|
||||
\fB\%archive_entry_nlink\fP,
|
||||
\fB\%archive_entry_rdev\fP,
|
||||
\fB\%archive_entry_set_rdev\fP,
|
||||
\fB\%archive_entry_rdevmajor\fP,
|
||||
\fB\%archive_entry_set_rdevmajor\fP,
|
||||
\fB\%archive_entry_rdevminor\fP,
|
||||
\fB\%archive_entry_set_rdevminor\fP
|
||||
\- accessor functions for manipulating archive entry descriptions
|
||||
.SH LIBRARY
|
||||
.ad l
|
||||
Streaming Archive Library (libarchive, -larchive)
|
||||
.SH SYNOPSIS
|
||||
.ad l
|
||||
\fB#include <archive_entry.h>\fP
|
||||
.br
|
||||
\fIconst struct stat *\fP
|
||||
.br
|
||||
\fB\%archive_entry_stat\fP(\fI\%struct\ archive_entry\ *a\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_copy_stat\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%const\ struct\ stat\ *sb\fP);
|
||||
.br
|
||||
\fImode_t\fP
|
||||
.br
|
||||
\fB\%archive_entry_filetype\fP(\fI\%struct\ archive_entry\ *a\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_set_filetype\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%unsigned\ int\ type\fP);
|
||||
.br
|
||||
\fImode_t\fP
|
||||
.br
|
||||
\fB\%archive_entry_mode\fP(\fI\%struct\ archive_entry\ *a\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_set_mode\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%mode_t\ mode\fP);
|
||||
.br
|
||||
\fIint64_t\fP
|
||||
.br
|
||||
\fB\%archive_entry_size\fP(\fI\%struct\ archive_entry\ *a\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_entry_size_is_set\fP(\fI\%struct\ archive_entry\ *a\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_set_size\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%int64_t\ size\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_unset_size\fP(\fI\%struct\ archive_entry\ *a\fP);
|
||||
.br
|
||||
\fIdev_t\fP
|
||||
.br
|
||||
\fB\%archive_entry_dev\fP(\fI\%struct\ archive_entry\ *a\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_set_dev\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%dev_t\ dev\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_entry_dev_is_set\fP(\fI\%struct\ archive_entry\ *a\fP);
|
||||
.br
|
||||
\fIdev_t\fP
|
||||
.br
|
||||
\fB\%archive_entry_devmajor\fP(\fI\%struct\ archive_entry\ *a\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_set_devmajor\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%dev_t\ major\fP);
|
||||
.br
|
||||
\fIdev_t\fP
|
||||
.br
|
||||
\fB\%archive_entry_devminor\fP(\fI\%struct\ archive_entry\ *a\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_set_devminor\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%dev_t\ minor\fP);
|
||||
.br
|
||||
\fIino_t\fP
|
||||
.br
|
||||
\fB\%archive_entry_ino\fP(\fI\%struct\ archive_entry\ *a\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_set_ino\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%unsigned\ long\ ino\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_entry_ino_is_set\fP(\fI\%struct\ archive_entry\ *a\fP);
|
||||
.br
|
||||
\fIint64_t\fP
|
||||
.br
|
||||
\fB\%archive_entry_ino64\fP(\fI\%struct\ archive_entry\ *a\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_set_ino64\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%int64_t\ ino\fP);
|
||||
.br
|
||||
\fIunsigned int\fP
|
||||
.br
|
||||
\fB\%archive_entry_nlink\fP(\fI\%struct\ archive_entry\ *a\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_set_nlink\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%unsigned\ int\ count\fP);
|
||||
.br
|
||||
\fIdev_t\fP
|
||||
.br
|
||||
\fB\%archive_entry_rdev\fP(\fI\%struct\ archive_entry\ *a\fP);
|
||||
.br
|
||||
\fIdev_t\fP
|
||||
.br
|
||||
\fB\%archive_entry_rdevmajor\fP(\fI\%struct\ archive_entry\ *a\fP);
|
||||
.br
|
||||
\fIdev_t\fP
|
||||
.br
|
||||
\fB\%archive_entry_rdevminor\fP(\fI\%struct\ archive_entry\ *a\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_set_rdev\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%dev_t\ dev\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_set_rdevmajor\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%dev_t\ major\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_set_rdevminor\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%dev_t\ minor\fP);
|
||||
.SH DESCRIPTION
|
||||
.ad l
|
||||
.SS Copying to and from Vt struct stat
|
||||
The function
|
||||
\fB\%archive_entry_stat\fP()
|
||||
converts the various fields stored in the archive entry to the format
|
||||
used by
|
||||
\fBstat\fP(2).
|
||||
The return value remains valid until either
|
||||
\fB\%archive_entry_clear\fP()
|
||||
or
|
||||
\fB\%archive_entry_free\fP()
|
||||
is called.
|
||||
It is not affected by calls to the set accessor functions.
|
||||
It currently sets the following values in
|
||||
Vt struct stat:
|
||||
Vt st_atime,
|
||||
Vt st_ctime,
|
||||
Vt st_dev,
|
||||
Vt st_gid,
|
||||
Vt st_ino,
|
||||
Vt st_mode,
|
||||
Vt st_mtime,
|
||||
Vt st_nlink,
|
||||
Vt st_rdev,
|
||||
Vt st_size,
|
||||
Vt st_uid.
|
||||
In addition,
|
||||
Vt st_birthtime
|
||||
and high-precision information for time-related fields
|
||||
will be included on platforms that support it.
|
||||
.PP
|
||||
The function
|
||||
\fB\%archive_entry_copy_stat\fP()
|
||||
copies fields from the platform's
|
||||
Vt struct stat.
|
||||
Fields not provided by
|
||||
Vt struct stat
|
||||
are unchanged.
|
||||
.SS General accessor functions
|
||||
The functions
|
||||
\fB\%archive_entry_filetype\fP()
|
||||
and
|
||||
\fB\%archive_entry_set_filetype\fP()
|
||||
get respectively set the filetype.
|
||||
The file type is one of the following constants:
|
||||
.RS 5
|
||||
.TP
|
||||
AE_IFREG
|
||||
Regular file
|
||||
.TP
|
||||
AE_IFLNK
|
||||
Symbolic link
|
||||
.TP
|
||||
AE_IFSOCK
|
||||
Socket
|
||||
.TP
|
||||
AE_IFCHR
|
||||
Character device
|
||||
.TP
|
||||
AE_IFBLK
|
||||
Block device
|
||||
.TP
|
||||
AE_IFDIR
|
||||
Directory
|
||||
.TP
|
||||
AE_IFIFO
|
||||
Named pipe (fifo)
|
||||
.RE
|
||||
Not all file types are supported by all platforms.
|
||||
The constants used by
|
||||
\fBstat\fP(2)
|
||||
may have different numeric values from the
|
||||
corresponding constants above.
|
||||
.PP
|
||||
The functions
|
||||
\fB\%archive_entry_mode\fP()
|
||||
and
|
||||
\fB\%archive_entry_set_mode\fP()
|
||||
get/set a combination of file type and permissions and provide the
|
||||
equivalent of
|
||||
\fIst_mode\fP.
|
||||
Use of
|
||||
\fB\%archive_entry_filetype\fP()
|
||||
and
|
||||
\fB\%archive_entry_perm\fP()
|
||||
for getting and
|
||||
\fB\%archive_entry_set_filetype\fP()
|
||||
and
|
||||
\fB\%archive_entry_set_perm\fP()
|
||||
for setting is recommended.
|
||||
.PP
|
||||
The function
|
||||
\fB\%archive_entry_size\fP()
|
||||
returns the file size, if it has been set, and 0 otherwise.
|
||||
\fB\%archive_entry_size\fP()
|
||||
can be used to query that status.
|
||||
\fB\%archive_entry_set_size\fP()
|
||||
and
|
||||
\fB\%archive_entry_unset_size\fP()
|
||||
set and unset the size, respectively.
|
||||
.PP
|
||||
The number of references (hardlinks) can be obtained by calling
|
||||
\fB\%archive_entry_nlinks\fP()
|
||||
and set with
|
||||
\fB\%archive_entry_set_nlinks\fP().
|
||||
.SS Identifying unique files
|
||||
The functions
|
||||
\fB\%archive_entry_dev\fP()
|
||||
and
|
||||
\fB\%archive_entry_ino64\fP()
|
||||
are used by
|
||||
\fBarchive_entry_linkify\fP(3)
|
||||
to find hardlinks.
|
||||
The pair of device and inode is supposed to identify hardlinked files.
|
||||
.PP
|
||||
The device major and minor number can be obtained independently using
|
||||
\fB\%archive_entry_devmajor\fP()
|
||||
and
|
||||
\fB\%archive_entry_devminor\fP().
|
||||
The device can be set either via
|
||||
\fB\%archive_entry_set_dev\fP()
|
||||
or by the combination of major and minor number using
|
||||
\fB\%archive_entry_set_devmajor\fP()
|
||||
and
|
||||
\fB\%archive_entry_set_devminor\fP().
|
||||
.PP
|
||||
The inode number can be obtained using
|
||||
\fB\%archive_entry_ino\fP().
|
||||
This is a legacy interface that uses the platform
|
||||
Vt ino_t,
|
||||
which may be very small.
|
||||
To set the inode number,
|
||||
\fB\%archive_entry_set_ino64\fP()
|
||||
is the preferred interface.
|
||||
.SS Accessor functions for block and character devices
|
||||
Block and character devices are characterised either using a device number
|
||||
or a pair of major and minor number.
|
||||
The combined device number can be obtained with
|
||||
\fB\%archive_device_rdev\fP()
|
||||
and set with
|
||||
\fB\%archive_device_set_rdev\fP().
|
||||
The major and minor numbers are accessed by
|
||||
\fB\%archive_device_rdevmajor\fP(),
|
||||
\fB\%archive_device_rdevminor\fP()
|
||||
\fB\%archive_device_set_rdevmajor\fP()
|
||||
and
|
||||
\fB\%archive_device_set_rdevminor\fP().
|
||||
.PP
|
||||
The process of splitting the combined device number into major and
|
||||
minor number and the reverse process of combing them differs between
|
||||
platforms.
|
||||
Some archive formats use the combined form, while other formats use
|
||||
the split form.
|
||||
.SH SEE ALSO
|
||||
.ad l
|
||||
\fBstat\fP(2),
|
||||
\fBarchive_entry_acl\fP(3),
|
||||
\fBarchive_entry_perms\fP(3),
|
||||
\fBarchive_entry_time\fP(3),
|
||||
\fBlibarchive\fP(3)
|
146
dependencies/libarchive-3.4.2/doc/man/archive_entry_time.3
vendored
Normal file
146
dependencies/libarchive-3.4.2/doc/man/archive_entry_time.3
vendored
Normal file
|
@ -0,0 +1,146 @@
|
|||
.TH ARCHIVE_ENTRY_TIME 3 "February 2, 2012" ""
|
||||
.SH NAME
|
||||
.ad l
|
||||
\fB\%archive_entry_atime\fP,
|
||||
\fB\%archive_entry_atime_nsec\fP,
|
||||
\fB\%archive_entry_atime_is_set\fP,
|
||||
\fB\%archive_entry_set_atime\fP,
|
||||
\fB\%archive_entry_unset_atime\fP,
|
||||
\fB\%archive_entry_birthtime\fP,
|
||||
\fB\%archive_entry_birthtime_nsec\fP,
|
||||
\fB\%archive_entry_birthtime_is_set\fP,
|
||||
\fB\%archive_entry_set_birthtime\fP,
|
||||
\fB\%archive_entry_unset_birthtime\fP,
|
||||
\fB\%archive_entry_ctime\fP,
|
||||
\fB\%archive_entry_ctime_nsec\fP,
|
||||
\fB\%archive_entry_ctime_is_set\fP,
|
||||
\fB\%archive_entry_set_ctime\fP,
|
||||
\fB\%archive_entry_unset_ctime\fP,
|
||||
\fB\%archive_entry_mtime\fP,
|
||||
\fB\%archive_entry_mtime_nsec\fP,
|
||||
\fB\%archive_entry_mtime_is_set\fP,
|
||||
\fB\%archive_entry_set_mtime\fP,
|
||||
\fB\%archive_entry_unset_mtime\fP
|
||||
\- functions for manipulating times in archive entry descriptions
|
||||
.SH LIBRARY
|
||||
.ad l
|
||||
Streaming Archive Library (libarchive, -larchive)
|
||||
.SH SYNOPSIS
|
||||
.ad l
|
||||
\fB#include <archive_entry.h>\fP
|
||||
.br
|
||||
\fItime_t\fP
|
||||
.br
|
||||
\fB\%archive_entry_atime\fP(\fI\%struct\ archive_entry\ *a\fP);
|
||||
.br
|
||||
\fIlong\fP
|
||||
.br
|
||||
\fB\%archive_entry_atime_nsec\fP(\fI\%struct\ archive_entry\ *a\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_entry_atime_is_set\fP(\fI\%struct\ archive_entry\ *a\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_set_atime\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%time_t\ sec\fP, \fI\%long\ nanosec\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_unset_atime\fP(\fI\%struct\ archive_entry\ *a\fP);
|
||||
.br
|
||||
\fItime_t\fP
|
||||
.br
|
||||
\fB\%archive_entry_birthtime\fP(\fI\%struct\ archive_entry\ *a\fP);
|
||||
.br
|
||||
\fIlong\fP
|
||||
.br
|
||||
\fB\%archive_entry_birthtime_nsec\fP(\fI\%struct\ archive_entry\ *a\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_entry_birthtime_is_set\fP(\fI\%struct\ archive_entry\ *a\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_set_birthtime\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%time_t\ sec\fP, \fI\%long\ nanosec\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_unset_birthtime\fP(\fI\%struct\ archive_entry\ *a\fP);
|
||||
.br
|
||||
\fItime_t\fP
|
||||
.br
|
||||
\fB\%archive_entry_ctime\fP(\fI\%struct\ archive_entry\ *a\fP);
|
||||
.br
|
||||
\fIlong\fP
|
||||
.br
|
||||
\fB\%archive_entry_ctime_nsec\fP(\fI\%struct\ archive_entry\ *a\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_entry_ctime_is_set\fP(\fI\%struct\ archive_entry\ *a\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_set_ctime\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%time_t\ sec\fP, \fI\%long\ nanosec\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_unset_ctime\fP(\fI\%struct\ archive_entry\ *a\fP);
|
||||
.br
|
||||
\fItime_t\fP
|
||||
.br
|
||||
\fB\%archive_entry_mtime\fP(\fI\%struct\ archive_entry\ *a\fP);
|
||||
.br
|
||||
\fIlong\fP
|
||||
.br
|
||||
\fB\%archive_entry_mtime_nsec\fP(\fI\%struct\ archive_entry\ *a\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_entry_mtime_is_set\fP(\fI\%struct\ archive_entry\ *a\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_set_mtime\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%time_t\ sec\fP, \fI\%long\ nanosec\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_entry_unset_mtime\fP(\fI\%struct\ archive_entry\ *a\fP);
|
||||
.SH DESCRIPTION
|
||||
.ad l
|
||||
These functions create and manipulate the time fields in an
|
||||
Vt archive_entry.
|
||||
Supported time fields are atime (access time), birthtime (creation time),
|
||||
ctime (last time an inode property was changed) and mtime (modification time).
|
||||
.PP
|
||||
\fBlibarchive\fP(3)
|
||||
provides a high-resolution interface.
|
||||
The timestamps are truncated automatically depending on the archive format
|
||||
(for archiving) or the filesystem capabilities (for restoring).
|
||||
.PP
|
||||
All timestamp fields are optional.
|
||||
The
|
||||
\fB\%XXX_unset\fP()
|
||||
functions can be used to mark the corresponding field as missing.
|
||||
The current state can be queried using
|
||||
\fB\%XXX_is_set\fP().
|
||||
Unset time fields have a second and nanosecond field of 0.
|
||||
.SH SEE ALSO
|
||||
.ad l
|
||||
\fBarchive_entry\fP(3),
|
||||
\fBlibarchive\fP(3)
|
||||
.SH HISTORY
|
||||
.ad l
|
||||
The
|
||||
\fB\%libarchive\fP
|
||||
library first appeared in
|
||||
FreeBSD 5.3.
|
||||
.SH AUTHORS
|
||||
.ad l
|
||||
-nosplit
|
||||
The
|
||||
\fB\%libarchive\fP
|
||||
library was written by
|
||||
Tim Kientzle \%<kientzle@acm.org.>
|
219
dependencies/libarchive-3.4.2/doc/man/archive_read.3
vendored
Normal file
219
dependencies/libarchive-3.4.2/doc/man/archive_read.3
vendored
Normal file
|
@ -0,0 +1,219 @@
|
|||
.TH ARCHIVE_READ 3 "February 2, 2012" ""
|
||||
.SH NAME
|
||||
.ad l
|
||||
\fB\%archive_read\fP
|
||||
\- functions for reading streaming archives
|
||||
.SH LIBRARY
|
||||
.ad l
|
||||
Streaming Archive Library (libarchive, -larchive)
|
||||
.SH SYNOPSIS
|
||||
.ad l
|
||||
\fB#include <archive.h>\fP
|
||||
.SH DESCRIPTION
|
||||
.ad l
|
||||
These functions provide a complete API for reading streaming archives.
|
||||
The general process is to first create the
|
||||
Tn struct archive
|
||||
object, set options, initialize the reader, iterate over the archive
|
||||
headers and associated data, then close the archive and release all
|
||||
resources.
|
||||
.SS Create archive object
|
||||
See
|
||||
\fBarchive_read_new\fP(3).
|
||||
.PP
|
||||
To read an archive, you must first obtain an initialized
|
||||
Tn struct archive
|
||||
object from
|
||||
\fB\%archive_read_new\fP().
|
||||
.SS Enable filters and formats
|
||||
See
|
||||
\fBarchive_read_filter\fP(3)
|
||||
and
|
||||
\fBarchive_read_format\fP(3).
|
||||
.PP
|
||||
You can then modify this object for the desired operations with the
|
||||
various
|
||||
\fB\%archive_read_set_XXX\fP()
|
||||
and
|
||||
\fB\%archive_read_support_XXX\fP()
|
||||
functions.
|
||||
In particular, you will need to invoke appropriate
|
||||
\fB\%archive_read_support_XXX\fP()
|
||||
functions to enable the corresponding compression and format
|
||||
support.
|
||||
Note that these latter functions perform two distinct operations:
|
||||
they cause the corresponding support code to be linked into your
|
||||
program, and they enable the corresponding auto-detect code.
|
||||
Unless you have specific constraints, you will generally want
|
||||
to invoke
|
||||
\fB\%archive_read_support_filter_all\fP()
|
||||
and
|
||||
\fB\%archive_read_support_format_all\fP()
|
||||
to enable auto-detect for all formats and compression types
|
||||
currently supported by the library.
|
||||
.SS Set options
|
||||
See
|
||||
\fBarchive_read_set_options\fP(3).
|
||||
.SS Open archive
|
||||
See
|
||||
\fBarchive_read_open\fP(3).
|
||||
.PP
|
||||
Once you have prepared the
|
||||
Tn struct archive
|
||||
object, you call
|
||||
\fB\%archive_read_open\fP()
|
||||
to actually open the archive and prepare it for reading.
|
||||
There are several variants of this function;
|
||||
the most basic expects you to provide pointers to several
|
||||
functions that can provide blocks of bytes from the archive.
|
||||
There are convenience forms that allow you to
|
||||
specify a filename, file descriptor,
|
||||
\fIFILE *\fP
|
||||
object, or a block of memory from which to read the archive data.
|
||||
Note that the core library makes no assumptions about the
|
||||
size of the blocks read;
|
||||
callback functions are free to read whatever block size is
|
||||
most appropriate for the medium.
|
||||
.SS Consume archive
|
||||
See
|
||||
\fBarchive_read_header\fP(3),
|
||||
\fBarchive_read_data\fP(3)
|
||||
and
|
||||
\fBarchive_read_extract\fP(3).
|
||||
.PP
|
||||
Each archive entry consists of a header followed by a certain
|
||||
amount of data.
|
||||
You can obtain the next header with
|
||||
\fB\%archive_read_next_header\fP(),
|
||||
which returns a pointer to an
|
||||
Tn struct archive_entry
|
||||
structure with information about the current archive element.
|
||||
If the entry is a regular file, then the header will be followed
|
||||
by the file data.
|
||||
You can use
|
||||
\fB\%archive_read_data\fP()
|
||||
(which works much like the
|
||||
\fBread\fP(2)
|
||||
system call)
|
||||
to read this data from the archive, or
|
||||
\fB\%archive_read_data_block\fP()
|
||||
which provides a slightly more efficient interface.
|
||||
You may prefer to use the higher-level
|
||||
\fB\%archive_read_data_skip\fP(),
|
||||
which reads and discards the data for this entry,
|
||||
\fB\%archive_read_data_into_fd\fP(),
|
||||
which copies the data to the provided file descriptor, or
|
||||
\fB\%archive_read_extract\fP(),
|
||||
which recreates the specified entry on disk and copies data
|
||||
from the archive.
|
||||
In particular, note that
|
||||
\fB\%archive_read_extract\fP()
|
||||
uses the
|
||||
Tn struct archive_entry
|
||||
structure that you provide it, which may differ from the
|
||||
entry just read from the archive.
|
||||
In particular, many applications will want to override the
|
||||
pathname, file permissions, or ownership.
|
||||
.SS Release resources
|
||||
See
|
||||
\fBarchive_read_free\fP(3).
|
||||
.PP
|
||||
Once you have finished reading data from the archive, you
|
||||
should call
|
||||
\fB\%archive_read_close\fP()
|
||||
to close the archive, then call
|
||||
\fB\%archive_read_free\fP()
|
||||
to release all resources, including all memory allocated by the library.
|
||||
.SH EXAMPLES
|
||||
.ad l
|
||||
The following illustrates basic usage of the library.
|
||||
In this example,
|
||||
the callback functions are simply wrappers around the standard
|
||||
\fBopen\fP(2),
|
||||
\fBread\fP(2),
|
||||
and
|
||||
\fBclose\fP(2)
|
||||
system calls.
|
||||
.RS 4
|
||||
.nf
|
||||
void
|
||||
list_archive(const char *name)
|
||||
{
|
||||
struct mydata *mydata;
|
||||
struct archive *a;
|
||||
struct archive_entry *entry;
|
||||
mydata = malloc(sizeof(struct mydata));
|
||||
a = archive_read_new();
|
||||
mydata->name = name;
|
||||
archive_read_support_filter_all(a);
|
||||
archive_read_support_format_all(a);
|
||||
archive_read_open(a, mydata, myopen, myread, myclose);
|
||||
while (archive_read_next_header(a, &entry) == ARCHIVE_OK) {
|
||||
printf("%s\en",archive_entry_pathname(entry));
|
||||
archive_read_data_skip(a);
|
||||
}
|
||||
archive_read_free(a);
|
||||
free(mydata);
|
||||
}
|
||||
la_ssize_t
|
||||
myread(struct archive *a, void *client_data, const void **buff)
|
||||
{
|
||||
struct mydata *mydata = client_data;
|
||||
*buff = mydata->buff;
|
||||
return (read(mydata->fd, mydata->buff, 10240));
|
||||
}
|
||||
int
|
||||
myopen(struct archive *a, void *client_data)
|
||||
{
|
||||
struct mydata *mydata = client_data;
|
||||
mydata->fd = open(mydata->name, O_RDONLY);
|
||||
return (mydata->fd >= 0 ? ARCHIVE_OK : ARCHIVE_FATAL);
|
||||
}
|
||||
int
|
||||
myclose(struct archive *a, void *client_data)
|
||||
{
|
||||
struct mydata *mydata = client_data;
|
||||
if (mydata->fd > 0)
|
||||
close(mydata->fd);
|
||||
return (ARCHIVE_OK);
|
||||
}
|
||||
.RE
|
||||
.SH SEE ALSO
|
||||
.ad l
|
||||
\fBtar\fP(1),
|
||||
\fBarchive_read_data\fP(3),
|
||||
\fBarchive_read_extract\fP(3),
|
||||
\fBarchive_read_filter\fP(3),
|
||||
\fBarchive_read_format\fP(3),
|
||||
\fBarchive_read_header\fP(3),
|
||||
\fBarchive_read_new\fP(3),
|
||||
\fBarchive_read_open\fP(3),
|
||||
\fBarchive_read_set_options\fP(3),
|
||||
\fBarchive_util\fP(3),
|
||||
\fBlibarchive\fP(3),
|
||||
\fBtar\fP(5)
|
||||
.SH HISTORY
|
||||
.ad l
|
||||
The
|
||||
\fB\%libarchive\fP
|
||||
library first appeared in
|
||||
FreeBSD 5.3.
|
||||
.SH AUTHORS
|
||||
.ad l
|
||||
-nosplit
|
||||
The
|
||||
\fB\%libarchive\fP
|
||||
library was written by
|
||||
Tim Kientzle \%<kientzle@acm.org.>
|
||||
.SH BUGS
|
||||
.ad l
|
||||
Many traditional archiver programs treat
|
||||
empty files as valid empty archives.
|
||||
For example, many implementations of
|
||||
\fBtar\fP(1)
|
||||
allow you to append entries to an empty file.
|
||||
Of course, it is impossible to determine the format of an empty file
|
||||
by inspecting the contents, so this library treats empty files as
|
||||
having a special
|
||||
``empty''
|
||||
format.
|
49
dependencies/libarchive-3.4.2/doc/man/archive_read_add_passphrase.3
vendored
Normal file
49
dependencies/libarchive-3.4.2/doc/man/archive_read_add_passphrase.3
vendored
Normal file
|
@ -0,0 +1,49 @@
|
|||
.TH ARCHIVE_READ_ADD_PASSPHRASE 3 "September 14, 2014" ""
|
||||
.SH NAME
|
||||
.ad l
|
||||
\fB\%archive_read_add_passphrase\fP,
|
||||
\fB\%archive_read_set_passphrase_callback\fP
|
||||
\- functions for reading encrypted archives
|
||||
.SH LIBRARY
|
||||
.ad l
|
||||
Streaming Archive Library (libarchive, -larchive)
|
||||
.SH SYNOPSIS
|
||||
.ad l
|
||||
\fB#include <archive.h>\fP
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_add_passphrase\fP(\fI\%struct\ archive\ *\fP, \fI\%const\ char\ *passphrase\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_set_passphrase_callback\fP(\fI\%struct\ archive\ *\fP, \fI\%void\ *client_data\fP, \fI\%archive_passphrase_callback\ *\fP);
|
||||
.SH DESCRIPTION
|
||||
.ad l
|
||||
.RS 5
|
||||
.TP
|
||||
\fB\%archive_read_add_passphrase\fP()
|
||||
Register passphrases for reading an encryption archive.
|
||||
If
|
||||
\fIpassphrase\fP
|
||||
is
|
||||
.BR NULL
|
||||
or empty, this function will do nothing and
|
||||
\fBARCHIVE_FAILED\fP
|
||||
will be returned.
|
||||
Otherwise,
|
||||
\fBARCHIVE_OK\fP
|
||||
will be returned.
|
||||
.TP
|
||||
\fB\%archive_read_set_passphrase_callback\fP()
|
||||
Register a callback function that will be invoked to get a passphrase
|
||||
for decryption after trying all the passphrases registered by the
|
||||
\fB\%archive_read_add_passphrase\fP()
|
||||
function failed.
|
||||
.RE
|
||||
.SH SEE ALSO
|
||||
.ad l
|
||||
\fBtar\fP(1),
|
||||
\fBarchive_read\fP(3),
|
||||
\fBarchive_read_set_options\fP(3),
|
||||
\fBlibarchive\fP(3)
|
112
dependencies/libarchive-3.4.2/doc/man/archive_read_data.3
vendored
Normal file
112
dependencies/libarchive-3.4.2/doc/man/archive_read_data.3
vendored
Normal file
|
@ -0,0 +1,112 @@
|
|||
.TH ARCHIVE_READ_DATA 3 "February 2, 2012" ""
|
||||
.SH NAME
|
||||
.ad l
|
||||
\fB\%archive_read_data\fP,
|
||||
\fB\%archive_read_data_block\fP,
|
||||
\fB\%archive_read_data_skip\fP,
|
||||
\fB\%archive_read_data_into_fd\fP
|
||||
\- functions for reading streaming archives
|
||||
.SH LIBRARY
|
||||
.ad l
|
||||
Streaming Archive Library (libarchive, -larchive)
|
||||
.SH SYNOPSIS
|
||||
.ad l
|
||||
\fB#include <archive.h>\fP
|
||||
.br
|
||||
\fIla_ssize_t\fP
|
||||
.br
|
||||
\fB\%archive_read_data\fP(\fI\%struct\ archive\ *\fP, \fI\%void\ *buff\fP, \fI\%size_t\ len\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_data_block\fP(\fI\%struct\ archive\ *\fP, \fI\%const\ void\ **buff\fP, \fI\%size_t\ *len\fP, \fI\%off_t\ *offset\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_data_skip\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_data_into_fd\fP(\fI\%struct\ archive\ *\fP, \fI\%int\ fd\fP);
|
||||
.SH DESCRIPTION
|
||||
.ad l
|
||||
.RS 5
|
||||
.TP
|
||||
\fB\%archive_read_data\fP()
|
||||
Read data associated with the header just read.
|
||||
Internally, this is a convenience function that calls
|
||||
\fB\%archive_read_data_block\fP()
|
||||
and fills any gaps with nulls so that callers see a single
|
||||
continuous stream of data.
|
||||
.TP
|
||||
\fB\%archive_read_data_block\fP()
|
||||
Return the next available block of data for this entry.
|
||||
Unlike
|
||||
\fB\%archive_read_data\fP(),
|
||||
the
|
||||
\fB\%archive_read_data_block\fP()
|
||||
function avoids copying data and allows you to correctly handle
|
||||
sparse files, as supported by some archive formats.
|
||||
The library guarantees that offsets will increase and that blocks
|
||||
will not overlap.
|
||||
Note that the blocks returned from this function can be much larger
|
||||
than the block size read from disk, due to compression
|
||||
and internal buffer optimizations.
|
||||
.TP
|
||||
\fB\%archive_read_data_skip\fP()
|
||||
A convenience function that repeatedly calls
|
||||
\fB\%archive_read_data_block\fP()
|
||||
to skip all of the data for this archive entry.
|
||||
Note that this function is invoked automatically by
|
||||
\fB\%archive_read_next_header2\fP()
|
||||
if the previous entry was not completely consumed.
|
||||
.TP
|
||||
\fB\%archive_read_data_into_fd\fP()
|
||||
A convenience function that repeatedly calls
|
||||
\fB\%archive_read_data_block\fP()
|
||||
to copy the entire entry to the provided file descriptor.
|
||||
.RE
|
||||
.SH RETURN VALUES
|
||||
.ad l
|
||||
Most functions return zero on success, non-zero on error.
|
||||
The possible return codes include:
|
||||
\fBARCHIVE_OK\fP
|
||||
(the operation succeeded),
|
||||
\fBARCHIVE_WARN\fP
|
||||
(the operation succeeded but a non-critical error was encountered),
|
||||
\fBARCHIVE_EOF\fP
|
||||
(end-of-archive was encountered),
|
||||
\fBARCHIVE_RETRY\fP
|
||||
(the operation failed but can be retried),
|
||||
and
|
||||
\fBARCHIVE_FATAL\fP
|
||||
(there was a fatal error; the archive should be closed immediately).
|
||||
.PP
|
||||
\fB\%archive_read_data\fP()
|
||||
returns a count of bytes actually read or zero at the end of the entry.
|
||||
On error, a value of
|
||||
\fBARCHIVE_FATAL\fP,
|
||||
\fBARCHIVE_WARN\fP,
|
||||
or
|
||||
\fBARCHIVE_RETRY\fP
|
||||
is returned.
|
||||
.SH ERRORS
|
||||
.ad l
|
||||
Detailed error codes and textual descriptions are available from the
|
||||
\fB\%archive_errno\fP()
|
||||
and
|
||||
\fB\%archive_error_string\fP()
|
||||
functions.
|
||||
.SH SEE ALSO
|
||||
.ad l
|
||||
\fBtar\fP(1),
|
||||
\fBarchive_read\fP(3),
|
||||
\fBarchive_read_extract\fP(3),
|
||||
\fBarchive_read_filter\fP(3),
|
||||
\fBarchive_read_format\fP(3),
|
||||
\fBarchive_read_header\fP(3),
|
||||
\fBarchive_read_open\fP(3),
|
||||
\fBarchive_read_set_options\fP(3),
|
||||
\fBarchive_util\fP(3),
|
||||
\fBlibarchive\fP(3),
|
||||
\fBtar\fP(5)
|
342
dependencies/libarchive-3.4.2/doc/man/archive_read_disk.3
vendored
Normal file
342
dependencies/libarchive-3.4.2/doc/man/archive_read_disk.3
vendored
Normal file
|
@ -0,0 +1,342 @@
|
|||
.TH ARCHIVE_READ_DISK 3 "April 3, 2017" ""
|
||||
.SH NAME
|
||||
.ad l
|
||||
\fB\%archive_read_disk_new\fP,
|
||||
\fB\%archive_read_disk_set_behavior\fP,
|
||||
\fB\%archive_read_disk_set_symlink_logical\fP,
|
||||
\fB\%archive_read_disk_set_symlink_physical\fP,
|
||||
\fB\%archive_read_disk_set_symlink_hybrid\fP,
|
||||
\fB\%archive_read_disk_entry_from_file\fP,
|
||||
\fB\%archive_read_disk_gname\fP,
|
||||
\fB\%archive_read_disk_uname\fP,
|
||||
\fB\%archive_read_disk_set_uname_lookup\fP,
|
||||
\fB\%archive_read_disk_set_gname_lookup\fP,
|
||||
\fB\%archive_read_disk_set_standard_lookup\fP
|
||||
\- functions for reading objects from disk
|
||||
.SH LIBRARY
|
||||
.ad l
|
||||
Streaming Archive Library (libarchive, -larchive)
|
||||
.SH SYNOPSIS
|
||||
.ad l
|
||||
\fB#include <archive.h>\fP
|
||||
.br
|
||||
\fIstruct archive *\fP
|
||||
.br
|
||||
\fB\%archive_read_disk_new\fP(\fI\%void\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_disk_set_behavior\fP(\fI\%struct\ archive\ *\fP, \fI\%int\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_disk_set_symlink_logical\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_disk_set_symlink_physical\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_disk_set_symlink_hybrid\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIconst char *\fP
|
||||
.br
|
||||
\fB\%archive_read_disk_gname\fP(\fI\%struct\ archive\ *\fP, \fI\%gid_t\fP);
|
||||
.br
|
||||
\fIconst char *\fP
|
||||
.br
|
||||
\fB\%archive_read_disk_uname\fP(\fI\%struct\ archive\ *\fP, \fI\%uid_t\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_disk_set_gname_lookup\fP(\fI\%struct\ archive\ *\fP, \fI\%void\ *\fP, \fI\%const\ char\ *(*lookup)(void\ *,\ gid_t)\fP, \fI\%void\ (*cleanup)(void\ *)\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_disk_set_uname_lookup\fP(\fI\%struct\ archive\ *\fP, \fI\%void\ *\fP, \fI\%const\ char\ *(*lookup)(void\ *,\ uid_t)\fP, \fI\%void\ (*cleanup)(void\ *)\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_disk_set_standard_lookup\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_disk_entry_from_file\fP(\fI\%struct\ archive\ *\fP, \fI\%struct\ archive_entry\ *\fP, \fI\%int\ fd\fP, \fI\%const\ struct\ stat\ *\fP);
|
||||
.SH DESCRIPTION
|
||||
.ad l
|
||||
These functions provide an API for reading information about
|
||||
objects on disk.
|
||||
In particular, they provide an interface for populating
|
||||
Tn struct archive_entry
|
||||
objects.
|
||||
.RS 5
|
||||
.TP
|
||||
\fB\%archive_read_disk_new\fP()
|
||||
Allocates and initializes a
|
||||
Tn struct archive
|
||||
object suitable for reading object information from disk.
|
||||
.TP
|
||||
\fB\%archive_read_disk_set_behavior\fP()
|
||||
Configures various behavior options when reading entries from disk.
|
||||
The flags field consists of a bitwise OR of one or more of the
|
||||
following values:
|
||||
.RS 5
|
||||
.TP
|
||||
\fBARCHIVE_READDISK_HONOR_NODUMP\fP
|
||||
Skip files and directories with the nodump file attribute (file flag) set.
|
||||
By default, the nodump file attribute is ignored.
|
||||
.TP
|
||||
\fBARCHIVE_READDISK_MAC_COPYFILE\fP
|
||||
Mac OS X specific.
|
||||
Read metadata (ACLs and extended attributes) with
|
||||
\fBcopyfile\fP(3).
|
||||
By default, metadata is read using
|
||||
\fBcopyfile\fP(3).
|
||||
.TP
|
||||
\fBARCHIVE_READDISK_NO_ACL\fP
|
||||
Do not read Access Control Lists.
|
||||
By default, ACLs are read from disk.
|
||||
.TP
|
||||
\fBARCHIVE_READDISK_NO_FFLAGS\fP
|
||||
Do not read file attributes (file flags).
|
||||
By default, file attributes are read from disk.
|
||||
See
|
||||
\fBchattr\fP(1)
|
||||
(Linux)
|
||||
or
|
||||
\fBchflags\fP(1)
|
||||
(FreeBSD, Mac OS X)
|
||||
for more information on file attributes.
|
||||
.TP
|
||||
\fBARCHIVE_READDISK_NO_TRAVERSE_MOUNTS\fP
|
||||
Do not traverse mount points.
|
||||
By default, mount points are traversed.
|
||||
.TP
|
||||
\fBARCHIVE_READDISK_NO_XATTR\fP
|
||||
Do not read extended file attributes (xattrs).
|
||||
By default, extended file attributes are read from disk.
|
||||
See
|
||||
\fBxattr\fP(7)
|
||||
(Linux,)
|
||||
\fBxattr\fP(2)
|
||||
(Mac OS X,)
|
||||
or
|
||||
\fBgetextattr\fP(8)
|
||||
(FreeBSD)
|
||||
for more information on extended file attributes.
|
||||
.TP
|
||||
\fBARCHIVE_READDISK_RESTORE_ATIME\fP
|
||||
Restore access time of traversed files.
|
||||
By default, access time of traversed files is not restored.
|
||||
.RE
|
||||
.TP
|
||||
\fB\%archive_read_disk_set_symlink_logical\fP(),
|
||||
\fB\%archive_read_disk_set_symlink_physical\fP(),
|
||||
\fB\%archive_read_disk_set_symlink_hybrid\fP()
|
||||
This sets the mode used for handling symbolic links.
|
||||
The
|
||||
``logical''
|
||||
mode follows all symbolic links.
|
||||
The
|
||||
``physical''
|
||||
mode does not follow any symbolic links.
|
||||
The
|
||||
``hybrid''
|
||||
mode currently behaves identically to the
|
||||
``logical''
|
||||
mode.
|
||||
.TP
|
||||
\fB\%archive_read_disk_gname\fP(),
|
||||
\fB\%archive_read_disk_uname\fP()
|
||||
Returns a user or group name given a gid or uid value.
|
||||
By default, these always return a NULL string.
|
||||
.TP
|
||||
\fB\%archive_read_disk_set_gname_lookup\fP(),
|
||||
\fB\%archive_read_disk_set_uname_lookup\fP()
|
||||
These allow you to override the functions used for
|
||||
user and group name lookups.
|
||||
You may also provide a
|
||||
Tn void *
|
||||
pointer to a private data structure and a cleanup function for
|
||||
that data.
|
||||
The cleanup function will be invoked when the
|
||||
Tn struct archive
|
||||
object is destroyed or when new lookup functions are registered.
|
||||
.TP
|
||||
\fB\%archive_read_disk_set_standard_lookup\fP()
|
||||
This convenience function installs a standard set of user
|
||||
and group name lookup functions.
|
||||
These functions use
|
||||
\fBgetpwuid\fP(3)
|
||||
and
|
||||
\fBgetgrgid\fP(3)
|
||||
to convert ids to names, defaulting to NULL if the names cannot
|
||||
be looked up.
|
||||
These functions also implement a simple memory cache to reduce
|
||||
the number of calls to
|
||||
\fBgetpwuid\fP(3)
|
||||
and
|
||||
\fBgetgrgid\fP(3).
|
||||
.TP
|
||||
\fB\%archive_read_disk_entry_from_file\fP()
|
||||
Populates a
|
||||
Tn struct archive_entry
|
||||
object with information about a particular file.
|
||||
The
|
||||
Tn archive_entry
|
||||
object must have already been created with
|
||||
\fBarchive_entry_new\fP(3)
|
||||
and at least one of the source path or path fields must already be set.
|
||||
(If both are set, the source path will be used.)
|
||||
.PP
|
||||
Information is read from disk using the path name from the
|
||||
Tn struct archive_entry
|
||||
object.
|
||||
If a file descriptor is provided, some information will be obtained using
|
||||
that file descriptor, on platforms that support the appropriate
|
||||
system calls.
|
||||
.PP
|
||||
If a pointer to a
|
||||
Tn struct stat
|
||||
is provided, information from that structure will be used instead
|
||||
of reading from the disk where appropriate.
|
||||
This can provide performance benefits in scenarios where
|
||||
Tn struct stat
|
||||
information has already been read from the disk as a side effect
|
||||
of some other operation.
|
||||
(For example, directory traversal libraries often provide this information.)
|
||||
.PP
|
||||
Where necessary, user and group ids are converted to user and group names
|
||||
using the currently-registered lookup functions above.
|
||||
This affects the file ownership fields and ACL values in the
|
||||
Tn struct archive_entry
|
||||
object.
|
||||
.RE
|
||||
More information about the
|
||||
\fIstruct\fP archive
|
||||
object and the overall design of the library can be found in the
|
||||
\fBlibarchive\fP(3)
|
||||
overview.
|
||||
.SH EXAMPLES
|
||||
.ad l
|
||||
The following illustrates basic usage of the library by
|
||||
showing how to use it to copy an item on disk into an archive.
|
||||
.RS 4
|
||||
.nf
|
||||
void
|
||||
file_to_archive(struct archive *a, const char *name)
|
||||
{
|
||||
char buff[8192];
|
||||
size_t bytes_read;
|
||||
struct archive *ard;
|
||||
struct archive_entry *entry;
|
||||
int fd;
|
||||
ard = archive_read_disk_new();
|
||||
archive_read_disk_set_standard_lookup(ard);
|
||||
entry = archive_entry_new();
|
||||
fd = open(name, O_RDONLY);
|
||||
if (fd < 0)
|
||||
return;
|
||||
archive_entry_copy_pathname(entry, name);
|
||||
archive_read_disk_entry_from_file(ard, entry, fd, NULL);
|
||||
archive_write_header(a, entry);
|
||||
while ((bytes_read = read(fd, buff, sizeof(buff))) > 0)
|
||||
archive_write_data(a, buff, bytes_read);
|
||||
archive_write_finish_entry(a);
|
||||
archive_read_free(ard);
|
||||
archive_entry_free(entry);
|
||||
}
|
||||
.RE
|
||||
.SH RETURN VALUES
|
||||
.ad l
|
||||
Most functions return
|
||||
\fBARCHIVE_OK\fP
|
||||
(zero) on success, or one of several negative
|
||||
error codes for errors.
|
||||
Specific error codes include:
|
||||
\fBARCHIVE_RETRY\fP
|
||||
for operations that might succeed if retried,
|
||||
\fBARCHIVE_WARN\fP
|
||||
for unusual conditions that do not prevent further operations, and
|
||||
\fBARCHIVE_FATAL\fP
|
||||
for serious errors that make remaining operations impossible.
|
||||
.PP
|
||||
\fB\%archive_read_disk_new\fP()
|
||||
returns a pointer to a newly-allocated
|
||||
Tn struct archive
|
||||
object or NULL if the allocation failed for any reason.
|
||||
.PP
|
||||
\fB\%archive_read_disk_gname\fP()
|
||||
and
|
||||
\fB\%archive_read_disk_uname\fP()
|
||||
return
|
||||
Tn const char *
|
||||
pointers to the textual name or NULL if the lookup failed for any reason.
|
||||
The returned pointer points to internal storage that
|
||||
may be reused on the next call to either of these functions;
|
||||
callers should copy the string if they need to continue accessing it.
|
||||
.SH ERRORS
|
||||
.ad l
|
||||
Detailed error codes and textual descriptions are available from the
|
||||
\fB\%archive_errno\fP()
|
||||
and
|
||||
\fB\%archive_error_string\fP()
|
||||
functions.
|
||||
.SH SEE ALSO
|
||||
.ad l
|
||||
\fBtar\fP(1),
|
||||
\fBarchive_read\fP(3),
|
||||
\fBarchive_util\fP(3),
|
||||
\fBarchive_write\fP(3),
|
||||
\fBarchive_write_disk\fP(3),
|
||||
\fBlibarchive\fP(3)
|
||||
.SH HISTORY
|
||||
.ad l
|
||||
The
|
||||
\fB\%libarchive\fP
|
||||
library first appeared in
|
||||
FreeBSD 5.3.
|
||||
The
|
||||
\fB\%archive_read_disk\fP
|
||||
interface was added to
|
||||
\fB\%libarchive\fP 2.6
|
||||
and first appeared in
|
||||
FreeBSD 8.0.
|
||||
.SH AUTHORS
|
||||
.ad l
|
||||
-nosplit
|
||||
The
|
||||
\fB\%libarchive\fP
|
||||
library was written by
|
||||
Tim Kientzle \%<kientzle@FreeBSD.org.>
|
||||
.SH BUGS
|
||||
.ad l
|
||||
The
|
||||
``standard''
|
||||
user name and group name lookup functions are not the defaults because
|
||||
\fBgetgrgid\fP(3)
|
||||
and
|
||||
\fBgetpwuid\fP(3)
|
||||
are sometimes too large for particular applications.
|
||||
The current design allows the application author to use a more
|
||||
compact implementation when appropriate.
|
||||
.PP
|
||||
The full list of metadata read from disk by
|
||||
\fB\%archive_read_disk_entry_from_file\fP()
|
||||
is necessarily system-dependent.
|
||||
.PP
|
||||
The
|
||||
\fB\%archive_read_disk_entry_from_file\fP()
|
||||
function reads as much information as it can from disk.
|
||||
Some method should be provided to limit this so that clients who
|
||||
do not need ACLs, for instance, can avoid the extra work needed
|
||||
to look up such information.
|
||||
.PP
|
||||
This API should provide a set of methods for walking a directory tree.
|
||||
That would make it a direct parallel of the
|
||||
\fBarchive_read\fP(3)
|
||||
API.
|
||||
When such methods are implemented, the
|
||||
``hybrid''
|
||||
symbolic link mode will make sense.
|
112
dependencies/libarchive-3.4.2/doc/man/archive_read_extract.3
vendored
Normal file
112
dependencies/libarchive-3.4.2/doc/man/archive_read_extract.3
vendored
Normal file
|
@ -0,0 +1,112 @@
|
|||
.TH ARCHIVE_READ_EXTRACT 3 "February 2, 2012" ""
|
||||
.SH NAME
|
||||
.ad l
|
||||
\fB\%archive_read_extract\fP,
|
||||
\fB\%archive_read_extract2\fP,
|
||||
\fB\%archive_read_extract_set_progress_callback\fP
|
||||
\- functions for reading streaming archives
|
||||
.SH LIBRARY
|
||||
.ad l
|
||||
Streaming Archive Library (libarchive, -larchive)
|
||||
.SH SYNOPSIS
|
||||
.ad l
|
||||
\fB#include <archive.h>\fP
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_extract\fP(\fI\%struct\ archive\ *\fP, \fI\%struct\ archive_entry\ *\fP, \fI\%int\ flags\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_extract2\fP(\fI\%struct\ archive\ *src\fP, \fI\%struct\ archive_entry\ *\fP, \fI\%struct\ archive\ *dest\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_read_extract_set_progress_callback\fP(\fI\%struct\ archive\ *\fP, \fI\%void\ (*func)(void\ *)\fP, \fI\%void\ *user_data\fP);
|
||||
.SH DESCRIPTION
|
||||
.ad l
|
||||
.RS 5
|
||||
.TP
|
||||
\fB\%archive_read_extract\fP(), \fB\%archive_read_extract_set_skip_file\fP()
|
||||
A convenience function that wraps the corresponding
|
||||
\fBarchive_write_disk\fP(3)
|
||||
interfaces.
|
||||
The first call to
|
||||
\fB\%archive_read_extract\fP()
|
||||
creates a restore object using
|
||||
\fBarchive_write_disk_new\fP(3)
|
||||
and
|
||||
\fBarchive_write_disk_set_standard_lookup\fP(3),
|
||||
then transparently invokes
|
||||
\fBarchive_write_disk_set_options\fP(3),
|
||||
\fBarchive_write_header\fP(3),
|
||||
\fBarchive_write_data\fP(3),
|
||||
and
|
||||
\fBarchive_write_finish_entry\fP(3)
|
||||
to create the entry on disk and copy data into it.
|
||||
The
|
||||
\fIflags\fP
|
||||
argument is passed unmodified to
|
||||
\fBarchive_write_disk_set_options\fP(3).
|
||||
.TP
|
||||
\fB\%archive_read_extract2\fP()
|
||||
This is another version of
|
||||
\fB\%archive_read_extract\fP()
|
||||
that allows you to provide your own restore object.
|
||||
In particular, this allows you to override the standard lookup functions
|
||||
using
|
||||
\fBarchive_write_disk_set_group_lookup\fP(3),
|
||||
and
|
||||
\fBarchive_write_disk_set_user_lookup\fP(3).
|
||||
Note that
|
||||
\fB\%archive_read_extract2\fP()
|
||||
does not accept a
|
||||
\fIflags\fP
|
||||
argument; you should use
|
||||
\fB\%archive_write_disk_set_options\fP()
|
||||
to set the restore options yourself.
|
||||
.TP
|
||||
\fB\%archive_read_extract_set_progress_callback\fP()
|
||||
Sets a pointer to a user-defined callback that can be used
|
||||
for updating progress displays during extraction.
|
||||
The progress function will be invoked during the extraction of large
|
||||
regular files.
|
||||
The progress function will be invoked with the pointer provided to this call.
|
||||
Generally, the data pointed to should include a reference to the archive
|
||||
object and the archive_entry object so that various statistics
|
||||
can be retrieved for the progress display.
|
||||
.RE
|
||||
.SH RETURN VALUES
|
||||
.ad l
|
||||
Most functions return zero on success, non-zero on error.
|
||||
The possible return codes include:
|
||||
\fBARCHIVE_OK\fP
|
||||
(the operation succeeded),
|
||||
\fBARCHIVE_WARN\fP
|
||||
(the operation succeeded but a non-critical error was encountered),
|
||||
\fBARCHIVE_EOF\fP
|
||||
(end-of-archive was encountered),
|
||||
\fBARCHIVE_RETRY\fP
|
||||
(the operation failed but can be retried),
|
||||
and
|
||||
\fBARCHIVE_FATAL\fP
|
||||
(there was a fatal error; the archive should be closed immediately).
|
||||
.SH ERRORS
|
||||
.ad l
|
||||
Detailed error codes and textual descriptions are available from the
|
||||
\fB\%archive_errno\fP()
|
||||
and
|
||||
\fB\%archive_error_string\fP()
|
||||
functions.
|
||||
.SH SEE ALSO
|
||||
.ad l
|
||||
\fBtar\fP(1),
|
||||
\fBarchive_read\fP(3),
|
||||
\fBarchive_read_data\fP(3),
|
||||
\fBarchive_read_filter\fP(3),
|
||||
\fBarchive_read_format\fP(3),
|
||||
\fBarchive_read_open\fP(3),
|
||||
\fBarchive_read_set_options\fP(3),
|
||||
\fBarchive_util\fP(3),
|
||||
\fBlibarchive\fP(3),
|
||||
\fBtar\fP(5)
|
152
dependencies/libarchive-3.4.2/doc/man/archive_read_filter.3
vendored
Normal file
152
dependencies/libarchive-3.4.2/doc/man/archive_read_filter.3
vendored
Normal file
|
@ -0,0 +1,152 @@
|
|||
.TH ARCHIVE_READ_FILTER 3 "August 14, 2014" ""
|
||||
.SH NAME
|
||||
.ad l
|
||||
\fB\%archive_read_support_filter_all\fP,
|
||||
\fB\%archive_read_support_filter_bzip2\fP,
|
||||
\fB\%archive_read_support_filter_compress\fP,
|
||||
\fB\%archive_read_support_filter_gzip\fP,
|
||||
\fB\%archive_read_support_filter_lz4\fP,
|
||||
\fB\%archive_read_support_filter_lzma\fP,
|
||||
\fB\%archive_read_support_filter_none\fP,
|
||||
\fB\%archive_read_support_filter_rpm\fP,
|
||||
\fB\%archive_read_support_filter_uu\fP,
|
||||
\fB\%archive_read_support_filter_xz\fP,
|
||||
\fB\%archive_read_support_filter_zstd\fP,
|
||||
\fB\%archive_read_support_filter_program\fP,
|
||||
\fB\%archive_read_support_filter_program_signature\fP
|
||||
\- functions for reading streaming archives
|
||||
.SH LIBRARY
|
||||
.ad l
|
||||
Streaming Archive Library (libarchive, -larchive)
|
||||
.SH SYNOPSIS
|
||||
.ad l
|
||||
\fB#include <archive.h>\fP
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_support_filter_all\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_support_filter_bzip2\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_support_filter_compress\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_support_filter_grzip\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_support_filter_gzip\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_support_filter_lrzip\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_support_filter_lz4\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_support_filter_lzma\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_support_filter_lzop\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_support_filter_none\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_support_filter_rpm\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_support_filter_uu\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_support_filter_xz\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_support_filter_zstd\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_support_filter_program\fP(\fI\%struct\ archive\ *\fP, \fI\%const\ char\ *cmd\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_support_filter_program_signature\fP(\fI\%struct\ archive\ *\fP, \fI\%const\ char\ *cmd\fP, \fI\%const\ void\ *signature\fP, \fI\%size_t\ signature_length\fP);
|
||||
.SH DESCRIPTION
|
||||
.ad l
|
||||
.RS 5
|
||||
.TP
|
||||
\fB\%archive_read_support_filter_bzip2\fP(),
|
||||
\fB\%archive_read_support_filter_compress\fP(),
|
||||
\fB\%archive_read_support_filter_grzip\fP(),
|
||||
\fB\%archive_read_support_filter_gzip\fP(),
|
||||
\fB\%archive_read_support_filter_lrzip\fP(),
|
||||
\fB\%archive_read_support_filter_lz4\fP(),
|
||||
\fB\%archive_read_support_filter_lzma\fP(),
|
||||
\fB\%archive_read_support_filter_lzop\fP(),
|
||||
\fB\%archive_read_support_filter_none\fP(),
|
||||
\fB\%archive_read_support_filter_rpm\fP(),
|
||||
\fB\%archive_read_support_filter_uu\fP(),
|
||||
\fB\%archive_read_support_filter_xz\fP(),
|
||||
\fB\%archive_read_support_filter_zstd\fP(),
|
||||
Enables auto-detection code and decompression support for the
|
||||
specified compression.
|
||||
These functions may fall back on external programs if an appropriate
|
||||
library was not available at build time.
|
||||
Decompression using an external program is usually slower than
|
||||
decompression through built-in libraries.
|
||||
Note that
|
||||
``none''
|
||||
is always enabled by default.
|
||||
.TP
|
||||
\fB\%archive_read_support_filter_all\fP()
|
||||
Enables all available decompression filters.
|
||||
.TP
|
||||
\fB\%archive_read_support_filter_program\fP()
|
||||
Data is fed through the specified external program before being dearchived.
|
||||
Note that this disables automatic detection of the compression format,
|
||||
so it makes no sense to specify this in conjunction with any other
|
||||
decompression option.
|
||||
.TP
|
||||
\fB\%archive_read_support_filter_program_signature\fP()
|
||||
This feeds data through the specified external program
|
||||
but only if the initial bytes of the data match the specified
|
||||
signature value.
|
||||
.RE
|
||||
.SH RETURN VALUES
|
||||
.ad l
|
||||
These functions return
|
||||
\fBARCHIVE_OK\fP
|
||||
if the compression is fully supported,
|
||||
\fBARCHIVE_WARN\fP
|
||||
if the compression is supported only through an external program.
|
||||
.PP
|
||||
\fB\%archive_read_support_filter_none\fP()
|
||||
always succeeds.
|
||||
.SH ERRORS
|
||||
.ad l
|
||||
Detailed error codes and textual descriptions are available from the
|
||||
\fB\%archive_errno\fP()
|
||||
and
|
||||
\fB\%archive_error_string\fP()
|
||||
functions.
|
||||
.SH SEE ALSO
|
||||
.ad l
|
||||
\fBarchive_read\fP(3),
|
||||
\fBarchive_read_data\fP(3),
|
||||
\fBarchive_read_format\fP(3),
|
||||
\fBarchive_read_format\fP(3),
|
||||
\fBlibarchive\fP(3)
|
185
dependencies/libarchive-3.4.2/doc/man/archive_read_format.3
vendored
Normal file
185
dependencies/libarchive-3.4.2/doc/man/archive_read_format.3
vendored
Normal file
|
@ -0,0 +1,185 @@
|
|||
.TH ARCHIVE_READ_FORMAT 3 "February 2, 2012" ""
|
||||
.SH NAME
|
||||
.ad l
|
||||
\fB\%archive_read_support_format_7zip\fP,
|
||||
\fB\%archive_read_support_format_all\fP,
|
||||
\fB\%archive_read_support_format_ar\fP,
|
||||
\fB\%archive_read_support_format_by_code\fP,
|
||||
\fB\%archive_read_support_format_cab\fP,
|
||||
\fB\%archive_read_support_format_cpio\fP,
|
||||
\fB\%archive_read_support_format_empty\fP,
|
||||
\fB\%archive_read_support_format_iso9660\fP,
|
||||
\fB\%archive_read_support_format_lha\fP,
|
||||
\fB\%archive_read_support_format_mtree\fP,
|
||||
\fB\%archive_read_support_format_rar\fP,
|
||||
\fB\%archive_read_support_format_raw\fP,
|
||||
\fB\%archive_read_support_format_tar\fP,
|
||||
\fB\%archive_read_support_format_xar\fP,
|
||||
\fB\%archive_read_support_format_zip\fP
|
||||
\- functions for reading streaming archives
|
||||
.SH LIBRARY
|
||||
.ad l
|
||||
Streaming Archive Library (libarchive, -larchive)
|
||||
.SH SYNOPSIS
|
||||
.ad l
|
||||
\fB#include <archive.h>\fP
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_support_format_7zip\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_support_format_all\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_support_format_ar\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_support_format_by_code\fP(\fI\%struct\ archive\ *\fP, \fI\%int\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_support_format_cab\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_support_format_cpio\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_support_format_empty\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_support_format_iso9660\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_support_format_lha\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_support_format_mtree\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_support_format_rar\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_support_format_raw\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_support_format_tar\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_support_format_xar\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_support_format_zip\fP(\fI\%struct\ archive\ *\fP);
|
||||
.SH DESCRIPTION
|
||||
.ad l
|
||||
.RS 5
|
||||
.TP
|
||||
\fB\%archive_read_support_format_7zip\fP(),
|
||||
\fB\%archive_read_support_format_ar\fP(),
|
||||
\fB\%archive_read_support_format_cab\fP(),
|
||||
\fB\%archive_read_support_format_cpio\fP(),
|
||||
\fB\%archive_read_support_format_iso9660\fP(),
|
||||
\fB\%archive_read_support_format_lha\fP(),
|
||||
\fB\%archive_read_support_format_mtree\fP(),
|
||||
\fB\%archive_read_support_format_rar\fP(),
|
||||
\fB\%archive_read_support_format_raw\fP(),
|
||||
\fB\%archive_read_support_format_tar\fP(),
|
||||
\fB\%archive_read_support_format_xar\fP(),
|
||||
\fB\%archive_read_support_format_zip\fP()
|
||||
Enables support---including auto-detection code---for the
|
||||
specified archive format.
|
||||
For example,
|
||||
\fB\%archive_read_support_format_tar\fP()
|
||||
enables support for a variety of standard tar formats, old-style tar,
|
||||
ustar, pax interchange format, and many common variants.
|
||||
.TP
|
||||
\fB\%archive_read_support_format_all\fP()
|
||||
Enables support for all available formats except the
|
||||
``raw''
|
||||
format (see below).
|
||||
.TP
|
||||
\fB\%archive_read_support_format_by_code\fP()
|
||||
Enables a single format specified by the format code.
|
||||
This can be useful when reading a single archive twice;
|
||||
use
|
||||
\fB\%archive_format\fP()
|
||||
after reading the first time and pass the resulting code
|
||||
to this function to selectively enable only the necessary
|
||||
format support.
|
||||
Note: In statically-linked executables, this will cause
|
||||
your program to include support for every format.
|
||||
If executable size is a concern, you may wish to avoid
|
||||
using this function.
|
||||
.TP
|
||||
\fB\%archive_read_support_format_empty\fP()
|
||||
Enables support for treating empty files as empty archives.
|
||||
Because empty files are valid for several different formats,
|
||||
it is not possible to accurately determine a format for
|
||||
an empty file based purely on contents.
|
||||
So empty files are treated by libarchive as a distinct
|
||||
format.
|
||||
.TP
|
||||
\fB\%archive_read_support_format_raw\fP()
|
||||
The
|
||||
``raw''
|
||||
format handler allows libarchive to be used to read arbitrary data.
|
||||
It treats any data stream as an archive with a single entry.
|
||||
The pathname of this entry is
|
||||
``data ;''
|
||||
all other entry fields are unset.
|
||||
This is not enabled by
|
||||
\fB\%archive_read_support_format_all\fP()
|
||||
in order to avoid erroneous handling of damaged archives.
|
||||
.RE
|
||||
.SH RETURN VALUES
|
||||
.ad l
|
||||
These functions return
|
||||
\fBARCHIVE_OK\fP
|
||||
on success, or
|
||||
\fBARCHIVE_FATAL\fP.
|
||||
.SH ERRORS
|
||||
.ad l
|
||||
Detailed error codes and textual descriptions are available from the
|
||||
\fB\%archive_errno\fP()
|
||||
and
|
||||
\fB\%archive_error_string\fP()
|
||||
functions.
|
||||
.SH SEE ALSO
|
||||
.ad l
|
||||
\fBtar\fP(1),
|
||||
\fBarchive_read_data\fP(3),
|
||||
\fBarchive_read_filter\fP(3),
|
||||
\fBarchive_read_set_options\fP(3),
|
||||
\fBarchive_util\fP(3),
|
||||
\fBlibarchive\fP(3),
|
||||
\fBtar\fP(5)
|
||||
.SH BUGS
|
||||
.ad l
|
||||
Many traditional archiver programs treat
|
||||
empty files as valid empty archives.
|
||||
For example, many implementations of
|
||||
\fBtar\fP(1)
|
||||
allow you to append entries to an empty file.
|
||||
Of course, it is impossible to determine the format of an empty file
|
||||
by inspecting the contents, so this library treats empty files as
|
||||
having a special
|
||||
``empty''
|
||||
format.
|
||||
.PP
|
||||
Using the
|
||||
``raw''
|
||||
handler together with any other handler will often work
|
||||
but can produce surprising results.
|
78
dependencies/libarchive-3.4.2/doc/man/archive_read_free.3
vendored
Normal file
78
dependencies/libarchive-3.4.2/doc/man/archive_read_free.3
vendored
Normal file
|
@ -0,0 +1,78 @@
|
|||
.TH ARCHIVE_READ_FREE 3 "February 2, 2012" ""
|
||||
.SH NAME
|
||||
.ad l
|
||||
\fB\%archive_read_close\fP,
|
||||
\fB\%archive_read_finish\fP,
|
||||
\fB\%archive_read_free\fP
|
||||
\- functions for reading streaming archives
|
||||
.SH LIBRARY
|
||||
.ad l
|
||||
Streaming Archive Library (libarchive, -larchive)
|
||||
.SH SYNOPSIS
|
||||
.ad l
|
||||
\fB#include <archive.h>\fP
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_close\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_finish\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_free\fP(\fI\%struct\ archive\ *\fP);
|
||||
.SH DESCRIPTION
|
||||
.ad l
|
||||
.RS 5
|
||||
.TP
|
||||
\fB\%archive_read_close\fP()
|
||||
Complete the archive and invoke the close callback.
|
||||
.TP
|
||||
\fB\%archive_read_finish\fP()
|
||||
This is a deprecated synonym for
|
||||
\fB\%archive_read_free\fP().
|
||||
The new name was introduced with libarchive 3.0.
|
||||
Applications that need to compile with either libarchive 2
|
||||
or libarchive 3 should continue to use the
|
||||
\fB\%archive_read_finish\fP()
|
||||
name.
|
||||
Both names will be supported until libarchive 4.0 is
|
||||
released, which is not expected to occur earlier
|
||||
than 2013.
|
||||
.TP
|
||||
\fB\%archive_read_free\fP()
|
||||
Invokes
|
||||
\fB\%archive_read_close\fP()
|
||||
if it was not invoked manually, then release all resources.
|
||||
Note: In libarchive 1.x, this function was declared to return
|
||||
\fIvoid ,\fP
|
||||
which made it impossible to detect certain errors when
|
||||
\fB\%archive_read_close\fP()
|
||||
was invoked implicitly from this function.
|
||||
The declaration is corrected beginning with libarchive 2.0.
|
||||
.RE
|
||||
.SH RETURN VALUES
|
||||
.ad l
|
||||
These functions return
|
||||
\fBARCHIVE_OK\fP
|
||||
on success, or
|
||||
\fBARCHIVE_FATAL\fP.
|
||||
.SH ERRORS
|
||||
.ad l
|
||||
Detailed error codes and textual descriptions are available from the
|
||||
\fB\%archive_errno\fP()
|
||||
and
|
||||
\fB\%archive_error_string\fP()
|
||||
functions.
|
||||
.SH SEE ALSO
|
||||
.ad l
|
||||
\fBarchive_read_data\fP(3),
|
||||
\fBarchive_read_filter\fP(3),
|
||||
\fBarchive_read_format\fP(3),
|
||||
\fBarchive_read_new\fP(3),
|
||||
\fBarchive_read_open\fP(3),
|
||||
\fBarchive_read_set_options\fP(3),
|
||||
\fBarchive_util\fP(3),
|
||||
\fBlibarchive\fP(3)
|
72
dependencies/libarchive-3.4.2/doc/man/archive_read_header.3
vendored
Normal file
72
dependencies/libarchive-3.4.2/doc/man/archive_read_header.3
vendored
Normal file
|
@ -0,0 +1,72 @@
|
|||
.TH ARCHIVE_READ_HEADER 3 "February 2, 2012" ""
|
||||
.SH NAME
|
||||
.ad l
|
||||
\fB\%archive_read_next_header\fP,
|
||||
\fB\%archive_read_next_header2\fP
|
||||
\- functions for reading streaming archives
|
||||
.SH LIBRARY
|
||||
.ad l
|
||||
Streaming Archive Library (libarchive, -larchive)
|
||||
.SH SYNOPSIS
|
||||
.ad l
|
||||
\fB#include <archive.h>\fP
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_next_header\fP(\fI\%struct\ archive\ *\fP, \fI\%struct\ archive_entry\ **\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_next_header2\fP(\fI\%struct\ archive\ *\fP, \fI\%struct\ archive_entry\ *\fP);
|
||||
.SH DESCRIPTION
|
||||
.ad l
|
||||
.RS 5
|
||||
.TP
|
||||
\fB\%archive_read_next_header\fP()
|
||||
Read the header for the next entry and return a pointer to
|
||||
a
|
||||
Tn struct archive_entry.
|
||||
This is a convenience wrapper around
|
||||
\fB\%archive_read_next_header2\fP()
|
||||
that reuses an internal
|
||||
Tn struct archive_entry
|
||||
object for each request.
|
||||
.TP
|
||||
\fB\%archive_read_next_header2\fP()
|
||||
Read the header for the next entry and populate the provided
|
||||
Tn struct archive_entry.
|
||||
.RE
|
||||
.SH RETURN VALUES
|
||||
.ad l
|
||||
These functions return
|
||||
\fBARCHIVE_OK\fP
|
||||
(the operation succeeded),
|
||||
\fBARCHIVE_WARN\fP
|
||||
(the operation succeeded but a non-critical error was encountered),
|
||||
\fBARCHIVE_EOF\fP
|
||||
(end-of-archive was encountered),
|
||||
\fBARCHIVE_RETRY\fP
|
||||
(the operation failed but can be retried),
|
||||
and
|
||||
\fBARCHIVE_FATAL\fP
|
||||
(there was a fatal error; the archive should be closed immediately).
|
||||
.SH ERRORS
|
||||
.ad l
|
||||
Detailed error codes and textual descriptions are available from the
|
||||
\fB\%archive_errno\fP()
|
||||
and
|
||||
\fB\%archive_error_string\fP()
|
||||
functions.
|
||||
.SH SEE ALSO
|
||||
.ad l
|
||||
\fBtar\fP(1),
|
||||
\fBarchive_read\fP(3),
|
||||
\fBarchive_read_data\fP(3),
|
||||
\fBarchive_read_extract\fP(3),
|
||||
\fBarchive_read_filter\fP(3),
|
||||
\fBarchive_read_format\fP(3),
|
||||
\fBarchive_read_open\fP(3),
|
||||
\fBarchive_read_set_options\fP(3),
|
||||
\fBarchive_util\fP(3),
|
||||
\fBlibarchive\fP(3),
|
||||
\fBtar\fP(5)
|
37
dependencies/libarchive-3.4.2/doc/man/archive_read_new.3
vendored
Normal file
37
dependencies/libarchive-3.4.2/doc/man/archive_read_new.3
vendored
Normal file
|
@ -0,0 +1,37 @@
|
|||
.TH ARCHIVE_READ_NEW 3 "February 2, 2012" ""
|
||||
.SH NAME
|
||||
.ad l
|
||||
\fB\%archive_read_new\fP
|
||||
\- functions for reading streaming archives
|
||||
.SH LIBRARY
|
||||
.ad l
|
||||
Streaming Archive Library (libarchive, -larchive)
|
||||
.SH SYNOPSIS
|
||||
.ad l
|
||||
\fB#include <archive.h>\fP
|
||||
.br
|
||||
\fIstruct archive *\fP
|
||||
.br
|
||||
\fB\%archive_read_new\fP(\fI\%void\fP);
|
||||
.SH DESCRIPTION
|
||||
.ad l
|
||||
Allocates and initializes a
|
||||
Tn struct archive
|
||||
object suitable for reading from an archive.
|
||||
.BR NULL
|
||||
is returned on error.
|
||||
.PP
|
||||
A complete description of the
|
||||
Tn struct archive
|
||||
object can be found in the overview manual page for
|
||||
\fBlibarchive\fP(3).
|
||||
.SH SEE ALSO
|
||||
.ad l
|
||||
\fBtar\fP(1),
|
||||
\fBarchive_read_data\fP(3),
|
||||
\fBarchive_read_filter\fP(3),
|
||||
\fBarchive_read_format\fP(3),
|
||||
\fBarchive_read_set_options\fP(3),
|
||||
\fBarchive_util\fP(3),
|
||||
\fBlibarchive\fP(3),
|
||||
\fBtar\fP(5)
|
205
dependencies/libarchive-3.4.2/doc/man/archive_read_open.3
vendored
Normal file
205
dependencies/libarchive-3.4.2/doc/man/archive_read_open.3
vendored
Normal file
|
@ -0,0 +1,205 @@
|
|||
.TH ARCHIVE_READ_OPEN 3 "February 2, 2012" ""
|
||||
.SH NAME
|
||||
.ad l
|
||||
\fB\%archive_read_open\fP,
|
||||
\fB\%archive_read_open2\fP,
|
||||
\fB\%archive_read_open_fd\fP,
|
||||
\fB\%archive_read_open_FILE\fP,
|
||||
\fB\%archive_read_open_filename\fP,
|
||||
\fB\%archive_read_open_memory\fP
|
||||
\- functions for reading streaming archives
|
||||
.SH LIBRARY
|
||||
.ad l
|
||||
Streaming Archive Library (libarchive, -larchive)
|
||||
.SH SYNOPSIS
|
||||
.ad l
|
||||
\fB#include <archive.h>\fP
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_open\fP(\fI\%struct\ archive\ *\fP, \fI\%void\ *client_data\fP, \fI\%archive_open_callback\ *\fP, \fI\%archive_read_callback\ *\fP, \fI\%archive_close_callback\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_open2\fP(\fI\%struct\ archive\ *\fP, \fI\%void\ *client_data\fP, \fI\%archive_open_callback\ *\fP, \fI\%archive_read_callback\ *\fP, \fI\%archive_skip_callback\ *\fP, \fI\%archive_close_callback\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_open_FILE\fP(\fI\%struct\ archive\ *\fP, \fI\%FILE\ *file\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_open_fd\fP(\fI\%struct\ archive\ *\fP, \fI\%int\ fd\fP, \fI\%size_t\ block_size\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_open_filename\fP(\fI\%struct\ archive\ *\fP, \fI\%const\ char\ *filename\fP, \fI\%size_t\ block_size\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_open_memory\fP(\fI\%struct\ archive\ *\fP, \fI\%const\ void\ *buff\fP, \fI\%size_t\ size\fP);
|
||||
.SH DESCRIPTION
|
||||
.ad l
|
||||
.RS 5
|
||||
.TP
|
||||
\fB\%archive_read_open\fP()
|
||||
The same as
|
||||
\fB\%archive_read_open2\fP(),
|
||||
except that the skip callback is assumed to be
|
||||
.BR NULL.
|
||||
.TP
|
||||
\fB\%archive_read_open2\fP()
|
||||
Freeze the settings, open the archive, and prepare for reading entries.
|
||||
This is the most generic version of this call, which accepts
|
||||
four callback functions.
|
||||
Most clients will want to use
|
||||
\fB\%archive_read_open_filename\fP(),
|
||||
\fB\%archive_read_open_FILE\fP(),
|
||||
\fB\%archive_read_open_fd\fP(),
|
||||
or
|
||||
\fB\%archive_read_open_memory\fP()
|
||||
instead.
|
||||
The library invokes the client-provided functions to obtain
|
||||
raw bytes from the archive.
|
||||
.TP
|
||||
\fB\%archive_read_open_FILE\fP()
|
||||
Like
|
||||
\fB\%archive_read_open\fP(),
|
||||
except that it accepts a
|
||||
\fIFILE *\fP
|
||||
pointer.
|
||||
This function should not be used with tape drives or other devices
|
||||
that require strict I/O blocking.
|
||||
.TP
|
||||
\fB\%archive_read_open_fd\fP()
|
||||
Like
|
||||
\fB\%archive_read_open\fP(),
|
||||
except that it accepts a file descriptor and block size rather than
|
||||
a set of function pointers.
|
||||
Note that the file descriptor will not be automatically closed at
|
||||
end-of-archive.
|
||||
This function is safe for use with tape drives or other blocked devices.
|
||||
.TP
|
||||
\fB\%archive_read_open_file\fP()
|
||||
This is a deprecated synonym for
|
||||
\fB\%archive_read_open_filename\fP().
|
||||
.TP
|
||||
\fB\%archive_read_open_filename\fP()
|
||||
Like
|
||||
\fB\%archive_read_open\fP(),
|
||||
except that it accepts a simple filename and a block size.
|
||||
A NULL filename represents standard input.
|
||||
This function is safe for use with tape drives or other blocked devices.
|
||||
.TP
|
||||
\fB\%archive_read_open_memory\fP()
|
||||
Like
|
||||
\fB\%archive_read_open\fP(),
|
||||
except that it accepts a pointer and size of a block of
|
||||
memory containing the archive data.
|
||||
.RE
|
||||
.PP
|
||||
A complete description of the
|
||||
Tn struct archive
|
||||
and
|
||||
Tn struct archive_entry
|
||||
objects can be found in the overview manual page for
|
||||
\fBlibarchive\fP(3).
|
||||
.SH CLIENT CALLBACKS
|
||||
.ad l
|
||||
The callback functions must match the following prototypes:
|
||||
.RS 5
|
||||
.IP
|
||||
\fItypedef la_ssize_t\fP
|
||||
\fB\%archive_read_callback\fP(\fI\%struct\ archive\ *\fP, \fI\%void\ *client_data\fP, \fI\%const\ void\ **buffer\fP)
|
||||
.IP
|
||||
\fItypedef la_int64_t\fP
|
||||
\fB\%archive_skip_callback\fP(\fI\%struct\ archive\ *\fP, \fI\%void\ *client_data\fP, \fI\%off_t\ request\fP)
|
||||
.IP
|
||||
\fItypedef int\fP
|
||||
\fB\%archive_open_callback\fP(\fI\%struct\ archive\ *\fP, \fI\%void\ *client_data\fP)
|
||||
.IP
|
||||
\fItypedef int\fP
|
||||
\fB\%archive_close_callback\fP(\fI\%struct\ archive\ *\fP, \fI\%void\ *client_data\fP)
|
||||
.RE
|
||||
.PP
|
||||
The open callback is invoked by
|
||||
\fB\%archive_open\fP().
|
||||
It should return
|
||||
\fBARCHIVE_OK\fP
|
||||
if the underlying file or data source is successfully
|
||||
opened.
|
||||
If the open fails, it should call
|
||||
\fB\%archive_set_error\fP()
|
||||
to register an error code and message and return
|
||||
\fBARCHIVE_FATAL\fP.
|
||||
.PP
|
||||
The read callback is invoked whenever the library
|
||||
requires raw bytes from the archive.
|
||||
The read callback should read data into a buffer,
|
||||
set the
|
||||
.RS 4
|
||||
const void **buffer
|
||||
.RE
|
||||
argument to point to the available data, and
|
||||
return a count of the number of bytes available.
|
||||
The library will invoke the read callback again
|
||||
only after it has consumed this data.
|
||||
The library imposes no constraints on the size
|
||||
of the data blocks returned.
|
||||
On end-of-file, the read callback should
|
||||
return zero.
|
||||
On error, the read callback should invoke
|
||||
\fB\%archive_set_error\fP()
|
||||
to register an error code and message and
|
||||
return -1.
|
||||
.PP
|
||||
The skip callback is invoked when the
|
||||
library wants to ignore a block of data.
|
||||
The return value is the number of bytes actually
|
||||
skipped, which may differ from the request.
|
||||
If the callback cannot skip data, it should return
|
||||
zero.
|
||||
If the skip callback is not provided (the
|
||||
function pointer is
|
||||
.BR NULL ),
|
||||
the library will invoke the read function
|
||||
instead and simply discard the result.
|
||||
A skip callback can provide significant
|
||||
performance gains when reading uncompressed
|
||||
archives from slow disk drives or other media
|
||||
that can skip quickly.
|
||||
.PP
|
||||
The close callback is invoked by archive_close when
|
||||
the archive processing is complete.
|
||||
The callback should return
|
||||
\fBARCHIVE_OK\fP
|
||||
on success.
|
||||
On failure, the callback should invoke
|
||||
\fB\%archive_set_error\fP()
|
||||
to register an error code and message and
|
||||
return
|
||||
\fBARCHIVE_FATAL\fP.
|
||||
.SH RETURN VALUES
|
||||
.ad l
|
||||
These functions return
|
||||
\fBARCHIVE_OK\fP
|
||||
on success, or
|
||||
\fBARCHIVE_FATAL\fP.
|
||||
.SH ERRORS
|
||||
.ad l
|
||||
Detailed error codes and textual descriptions are available from the
|
||||
\fB\%archive_errno\fP()
|
||||
and
|
||||
\fB\%archive_error_string\fP()
|
||||
functions.
|
||||
.SH SEE ALSO
|
||||
.ad l
|
||||
\fBtar\fP(1),
|
||||
\fBarchive_read\fP(3),
|
||||
\fBarchive_read_data\fP(3),
|
||||
\fBarchive_read_filter\fP(3),
|
||||
\fBarchive_read_format\fP(3),
|
||||
\fBarchive_read_set_options\fP(3),
|
||||
\fBarchive_util\fP(3),
|
||||
\fBlibarchive\fP(3),
|
||||
\fBtar\fP(5)
|
244
dependencies/libarchive-3.4.2/doc/man/archive_read_set_options.3
vendored
Normal file
244
dependencies/libarchive-3.4.2/doc/man/archive_read_set_options.3
vendored
Normal file
|
@ -0,0 +1,244 @@
|
|||
.TH ARCHIVE_READ_OPTIONS 3 "January 31, 2020" ""
|
||||
.SH NAME
|
||||
.ad l
|
||||
\fB\%archive_read_set_filter_option\fP,
|
||||
\fB\%archive_read_set_format_option\fP,
|
||||
\fB\%archive_read_set_option\fP,
|
||||
\fB\%archive_read_set_options\fP
|
||||
\- functions controlling options for reading archives
|
||||
.SH LIBRARY
|
||||
.ad l
|
||||
Streaming Archive Library (libarchive, -larchive)
|
||||
.SH SYNOPSIS
|
||||
.ad l
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_set_filter_option\fP(\fI\%struct\ archive\ *\fP, \fI\%const\ char\ *module\fP, \fI\%const\ char\ *option\fP, \fI\%const\ char\ *value\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_set_format_option\fP(\fI\%struct\ archive\ *\fP, \fI\%const\ char\ *module\fP, \fI\%const\ char\ *option\fP, \fI\%const\ char\ *value\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_set_option\fP(\fI\%struct\ archive\ *\fP, \fI\%const\ char\ *module\fP, \fI\%const\ char\ *option\fP, \fI\%const\ char\ *value\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_read_set_options\fP(\fI\%struct\ archive\ *\fP, \fI\%const\ char\ *options\fP);
|
||||
.SH DESCRIPTION
|
||||
.ad l
|
||||
These functions provide a way for libarchive clients to configure
|
||||
specific read modules.
|
||||
.RS 5
|
||||
.TP
|
||||
\fB\%archive_read_set_filter_option\fP(),
|
||||
\fB\%archive_read_set_format_option\fP()
|
||||
Specifies an option that will be passed to currently-registered
|
||||
filters (including decompression filters) or format readers.
|
||||
.PP
|
||||
If
|
||||
\fIoption\fP
|
||||
and
|
||||
\fIvalue\fP
|
||||
are both
|
||||
.BR NULL,
|
||||
these functions will do nothing and
|
||||
\fBARCHIVE_OK\fP
|
||||
will be returned.
|
||||
If
|
||||
\fIoption\fP
|
||||
is
|
||||
.BR NULL
|
||||
but
|
||||
\fIvalue\fP
|
||||
is not, these functions will do nothing and
|
||||
\fBARCHIVE_FAILED\fP
|
||||
will be returned.
|
||||
.PP
|
||||
If
|
||||
\fImodule\fP
|
||||
is not
|
||||
.BR NULL,
|
||||
\fIoption\fP
|
||||
and
|
||||
\fIvalue\fP
|
||||
will be provided to the filter or reader named
|
||||
\fImodule\fP.
|
||||
The return value will be that of the module.
|
||||
If there is no such module,
|
||||
\fBARCHIVE_FAILED\fP
|
||||
will be returned.
|
||||
.PP
|
||||
If
|
||||
\fImodule\fP
|
||||
is
|
||||
.BR NULL,
|
||||
\fIoption\fP
|
||||
and
|
||||
\fIvalue\fP
|
||||
will be provided to every registered module.
|
||||
If any module returns
|
||||
\fBARCHIVE_FATAL\fP,
|
||||
this value will be returned immediately.
|
||||
Otherwise,
|
||||
\fBARCHIVE_OK\fP
|
||||
will be returned if any module accepts the option, and
|
||||
\fBARCHIVE_FAILED\fP
|
||||
in all other cases.
|
||||
.TP
|
||||
\fB\%archive_read_set_option\fP()
|
||||
Calls
|
||||
\fB\%archive_read_set_format_option\fP(),
|
||||
then
|
||||
\fB\%archive_read_set_filter_option\fP().
|
||||
If either function returns
|
||||
\fBARCHIVE_FATAL\fP,
|
||||
\fBARCHIVE_FATAL\fP
|
||||
will be returned
|
||||
immediately.
|
||||
Otherwise, greater of the two values will be returned.
|
||||
.TP
|
||||
\fB\%archive_read_set_options\fP()
|
||||
\fIoptions\fP
|
||||
is a comma-separated list of options.
|
||||
If
|
||||
\fIoptions\fP
|
||||
is
|
||||
.BR NULL
|
||||
or empty,
|
||||
\fBARCHIVE_OK\fP
|
||||
will be returned immediately.
|
||||
.PP
|
||||
Calls
|
||||
\fB\%archive_read_set_option\fP()
|
||||
with each option in turn.
|
||||
If any
|
||||
\fB\%archive_read_set_option\fP()
|
||||
call returns
|
||||
\fBARCHIVE_FATAL\fP,
|
||||
\fBARCHIVE_FATAL\fP
|
||||
will be returned immediately.
|
||||
.PP
|
||||
Individual options have one of the following forms:
|
||||
.RS 5
|
||||
.TP
|
||||
\fIoption=value\fP
|
||||
The option/value pair will be provided to every module.
|
||||
Modules that do not accept an option with this name will ignore it.
|
||||
.TP
|
||||
\fIoption\fP
|
||||
The option will be provided to every module with a value of
|
||||
``1''.
|
||||
.TP
|
||||
\fI!option\fP
|
||||
The option will be provided to every module with a NULL value.
|
||||
.TP
|
||||
\fImodule:option=value\fP, \fImodule:option\fP, \fImodule:!option\fP
|
||||
As above, but the corresponding option and value will be provided
|
||||
only to modules whose name matches
|
||||
\fImodule\fP.
|
||||
.RE
|
||||
.RE
|
||||
.SH OPTIONS
|
||||
.ad l
|
||||
.RS 5
|
||||
.TP
|
||||
Format cab
|
||||
.RS 5
|
||||
.TP
|
||||
\fBhdrcharset\fP
|
||||
The value is used as a character set name that will be
|
||||
used when translating file names.
|
||||
.RE
|
||||
.TP
|
||||
Format cpio
|
||||
.RS 5
|
||||
.TP
|
||||
\fBhdrcharset\fP
|
||||
The value is used as a character set name that will be
|
||||
used when translating file names.
|
||||
.RE
|
||||
.TP
|
||||
Format iso9660
|
||||
.RS 5
|
||||
.TP
|
||||
\fBjoliet\fP
|
||||
Support Joliet extensions.
|
||||
Defaults to enabled, use
|
||||
\fB!joliet\fP
|
||||
to disable.
|
||||
.TP
|
||||
\fBrockridge\fP
|
||||
Support RockRidge extensions.
|
||||
Defaults to enabled, use
|
||||
\fB!rockridge\fP
|
||||
to disable.
|
||||
.RE
|
||||
.TP
|
||||
Format lha
|
||||
.RS 5
|
||||
.TP
|
||||
\fBhdrcharset\fP
|
||||
The value is used as a character set name that will be
|
||||
used when translating file names.
|
||||
.RE
|
||||
.TP
|
||||
Format mtree
|
||||
.RS 5
|
||||
.TP
|
||||
\fBcheckfs\fP
|
||||
Allow reading information missing from the mtree from the file system.
|
||||
Disabled by default.
|
||||
.RE
|
||||
.TP
|
||||
Format rar
|
||||
.RS 5
|
||||
.TP
|
||||
\fBhdrcharset\fP
|
||||
The value is used as a character set name that will be
|
||||
used when translating file names.
|
||||
.RE
|
||||
.TP
|
||||
Format tar
|
||||
.RS 5
|
||||
.TP
|
||||
\fBcompat-2x\fP
|
||||
Libarchive 2.x incorrectly encoded Unicode filenames on
|
||||
some platforms.
|
||||
This option mimics the libarchive 2.x filename handling
|
||||
so that such archives can be read correctly.
|
||||
.TP
|
||||
\fBhdrcharset\fP
|
||||
The value is used as a character set name that will be
|
||||
used when translating file names.
|
||||
.TP
|
||||
\fBmac-ext\fP
|
||||
Support Mac OS metadata extension that records data in special
|
||||
files beginning with a period and underscore.
|
||||
Defaults to enabled on Mac OS, disabled on other platforms.
|
||||
Use
|
||||
\fB!mac-ext\fP
|
||||
to disable.
|
||||
.TP
|
||||
\fBread_concatenated_archives\fP
|
||||
Ignore zeroed blocks in the archive, which occurs when multiple tar archives
|
||||
have been concatenated together.
|
||||
Without this option, only the contents of
|
||||
the first concatenated archive would be read.
|
||||
.RE
|
||||
.RE
|
||||
.SH ERRORS
|
||||
.ad l
|
||||
Detailed error codes and textual descriptions are available from the
|
||||
\fB\%archive_errno\fP()
|
||||
and
|
||||
\fB\%archive_error_string\fP()
|
||||
functions.
|
||||
.SH SEE ALSO
|
||||
.ad l
|
||||
\fBtar\fP(1),
|
||||
\fBarchive_read\fP(3),
|
||||
\fBarchive_write_set_options\fP(3),
|
||||
\fBlibarchive\fP(3)
|
240
dependencies/libarchive-3.4.2/doc/man/archive_util.3
vendored
Normal file
240
dependencies/libarchive-3.4.2/doc/man/archive_util.3
vendored
Normal file
|
@ -0,0 +1,240 @@
|
|||
.TH ARCHIVE_UTIL 3 "February 2, 2012" ""
|
||||
.SH NAME
|
||||
.ad l
|
||||
\fB\%archive_clear_error\fP,
|
||||
\fB\%archive_compression\fP,
|
||||
\fB\%archive_compression_name\fP,
|
||||
\fB\%archive_copy_error\fP,
|
||||
\fB\%archive_errno\fP,
|
||||
\fB\%archive_error_string\fP,
|
||||
\fB\%archive_file_count\fP,
|
||||
\fB\%archive_filter_code\fP,
|
||||
\fB\%archive_filter_count\fP,
|
||||
\fB\%archive_filter_name\fP,
|
||||
\fB\%archive_format\fP,
|
||||
\fB\%archive_format_name\fP,
|
||||
\fB\%archive_position\fP,
|
||||
\fB\%archive_set_error\fP
|
||||
\- libarchive utility functions
|
||||
.SH LIBRARY
|
||||
.ad l
|
||||
Streaming Archive Library (libarchive, -larchive)
|
||||
.SH SYNOPSIS
|
||||
.ad l
|
||||
\fB#include <archive.h>\fP
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_clear_error\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_compression\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIconst char *\fP
|
||||
.br
|
||||
\fB\%archive_compression_name\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_copy_error\fP(\fI\%struct\ archive\ *\fP, \fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_errno\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIconst char *\fP
|
||||
.br
|
||||
\fB\%archive_error_string\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_file_count\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_filter_code\fP(\fI\%struct\ archive\ *\fP, \fI\%int\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_filter_count\fP(\fI\%struct\ archive\ *\fP, \fI\%int\fP);
|
||||
.br
|
||||
\fIconst char *\fP
|
||||
.br
|
||||
\fB\%archive_filter_name\fP(\fI\%struct\ archive\ *\fP, \fI\%int\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_format\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIconst char *\fP
|
||||
.br
|
||||
\fB\%archive_format_name\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint64_t\fP
|
||||
.br
|
||||
\fB\%archive_position\fP(\fI\%struct\ archive\ *\fP, \fI\%int\fP);
|
||||
.br
|
||||
\fIvoid\fP
|
||||
.br
|
||||
\fB\%archive_set_error\fP(\fI\%struct\ archive\ *\fP, \fI\%int\ error_code\fP, \fI\%const\ char\ *fmt\fP, \fI\%...\fP);
|
||||
.SH DESCRIPTION
|
||||
.ad l
|
||||
These functions provide access to various information about the
|
||||
Tn struct archive
|
||||
object used in the
|
||||
\fBlibarchive\fP(3)
|
||||
library.
|
||||
.RS 5
|
||||
.TP
|
||||
\fB\%archive_clear_error\fP()
|
||||
Clears any error information left over from a previous call.
|
||||
Not generally used in client code.
|
||||
.TP
|
||||
\fB\%archive_compression\fP()
|
||||
Synonym for
|
||||
\fB\%archive_filter_code\fP(\fI\%a\fP, \fI\%0\fP).
|
||||
.TP
|
||||
\fB\%archive_compression_name\fP()
|
||||
Synonym for
|
||||
\fB\%archive_filter_name\fP(\fI\%a\fP, \fI\%0\fP).
|
||||
.TP
|
||||
\fB\%archive_copy_error\fP()
|
||||
Copies error information from one archive to another.
|
||||
.TP
|
||||
\fB\%archive_errno\fP()
|
||||
Returns a numeric error code (see
|
||||
\fBerrno\fP(2))
|
||||
indicating the reason for the most recent error return.
|
||||
Note that this can not be reliably used to detect whether an
|
||||
error has occurred.
|
||||
It should be used only after another libarchive function
|
||||
has returned an error status.
|
||||
.TP
|
||||
\fB\%archive_error_string\fP()
|
||||
Returns a textual error message suitable for display.
|
||||
The error message here is usually more specific than that
|
||||
obtained from passing the result of
|
||||
\fB\%archive_errno\fP()
|
||||
to
|
||||
\fBstrerror\fP(3).
|
||||
.TP
|
||||
\fB\%archive_file_count\fP()
|
||||
Returns a count of the number of files processed by this archive object.
|
||||
The count is incremented by calls to
|
||||
\fBarchive_write_header\fP(3)
|
||||
or
|
||||
\fBarchive_read_next_header\fP(3).
|
||||
.TP
|
||||
\fB\%archive_filter_code\fP()
|
||||
Returns a numeric code identifying the indicated filter.
|
||||
See
|
||||
\fB\%archive_filter_count\fP()
|
||||
for details of the numbering.
|
||||
.TP
|
||||
\fB\%archive_filter_count\fP()
|
||||
Returns the number of filters in the current pipeline.
|
||||
For read archive handles, these filters are added automatically
|
||||
by the automatic format detection.
|
||||
For write archive handles, these filters are added by calls to the various
|
||||
\fB\%archive_write_add_filter_XXX\fP()
|
||||
functions.
|
||||
Filters in the resulting pipeline are numbered so that filter 0
|
||||
is the filter closest to the format handler.
|
||||
As a convenience, functions that expect a filter number will
|
||||
accept -1 as a synonym for the highest-numbered filter.
|
||||
.PP
|
||||
For example, when reading a uuencoded gzipped tar archive, there
|
||||
are three filters:
|
||||
filter 0 is the gunzip filter,
|
||||
filter 1 is the uudecode filter,
|
||||
and filter 2 is the pseudo-filter that wraps the archive read functions.
|
||||
In this case, requesting
|
||||
\fB\%archive_position\fP(\fI\%a\fP, \fI\%-1\fP)
|
||||
would be a synonym for
|
||||
\fB\%archive_position\fP(\fI\%a\fP, \fI\%2\fP)
|
||||
which would return the number of bytes currently read from the archive, while
|
||||
\fB\%archive_position\fP(\fI\%a\fP, \fI\%1\fP)
|
||||
would return the number of bytes after uudecoding, and
|
||||
\fB\%archive_position\fP(\fI\%a\fP, \fI\%0\fP)
|
||||
would return the number of bytes after decompression.
|
||||
.TP
|
||||
\fB\%archive_filter_name\fP()
|
||||
Returns a textual name identifying the indicated filter.
|
||||
See
|
||||
\fB\%archive_filter_count\fP()
|
||||
for details of the numbering.
|
||||
.TP
|
||||
\fB\%archive_format\fP()
|
||||
Returns a numeric code indicating the format of the current
|
||||
archive entry.
|
||||
This value is set by a successful call to
|
||||
\fB\%archive_read_next_header\fP().
|
||||
Note that it is common for this value to change from
|
||||
entry to entry.
|
||||
For example, a tar archive might have several entries that
|
||||
utilize GNU tar extensions and several entries that do not.
|
||||
These entries will have different format codes.
|
||||
.TP
|
||||
\fB\%archive_format_name\fP()
|
||||
A textual description of the format of the current entry.
|
||||
.TP
|
||||
\fB\%archive_position\fP()
|
||||
Returns the number of bytes read from or written to the indicated filter.
|
||||
In particular,
|
||||
\fB\%archive_position\fP(\fI\%a\fP, \fI\%0\fP)
|
||||
returns the number of bytes read or written by the format handler, while
|
||||
\fB\%archive_position\fP(\fI\%a\fP, \fI\%-1\fP)
|
||||
returns the number of bytes read or written to the archive.
|
||||
See
|
||||
\fB\%archive_filter_count\fP()
|
||||
for details of the numbering here.
|
||||
.TP
|
||||
\fB\%archive_set_error\fP()
|
||||
Sets the numeric error code and error description that will be returned
|
||||
by
|
||||
\fB\%archive_errno\fP()
|
||||
and
|
||||
\fB\%archive_error_string\fP().
|
||||
This function should be used within I/O callbacks to set system-specific
|
||||
error codes and error descriptions.
|
||||
This function accepts a printf-like format string and arguments.
|
||||
However, you should be careful to use only the following printf
|
||||
format specifiers:
|
||||
``%c'',
|
||||
``%d'',
|
||||
``%jd'',
|
||||
``%jo'',
|
||||
``%ju'',
|
||||
``%jx'',
|
||||
``%ld'',
|
||||
``%lo'',
|
||||
``%lu'',
|
||||
``%lx'',
|
||||
``%o'',
|
||||
``%u'',
|
||||
``%s'',
|
||||
``%x'',
|
||||
``%%''.
|
||||
Field-width specifiers and other printf features are
|
||||
not uniformly supported and should not be used.
|
||||
.RE
|
||||
.SH SEE ALSO
|
||||
.ad l
|
||||
\fBarchive_read\fP(3),
|
||||
\fBarchive_write\fP(3),
|
||||
\fBlibarchive\fP(3),
|
||||
\fBprintf\fP(3)
|
||||
.SH HISTORY
|
||||
.ad l
|
||||
The
|
||||
\fB\%libarchive\fP
|
||||
library first appeared in
|
||||
FreeBSD 5.3.
|
||||
.SH AUTHORS
|
||||
.ad l
|
||||
-nosplit
|
||||
The
|
||||
\fB\%libarchive\fP
|
||||
library was written by
|
||||
Tim Kientzle \%<kientzle@acm.org.>
|
233
dependencies/libarchive-3.4.2/doc/man/archive_write.3
vendored
Normal file
233
dependencies/libarchive-3.4.2/doc/man/archive_write.3
vendored
Normal file
|
@ -0,0 +1,233 @@
|
|||
.TH ARCHIVE_WRITE 3 "February 2, 2012" ""
|
||||
.SH NAME
|
||||
.ad l
|
||||
\fB\%archive_write\fP
|
||||
\- functions for creating archives
|
||||
.SH LIBRARY
|
||||
.ad l
|
||||
Streaming Archive Library (libarchive, -larchive)
|
||||
.SH SYNOPSIS
|
||||
.ad l
|
||||
\fB#include <archive.h>\fP
|
||||
.SH DESCRIPTION
|
||||
.ad l
|
||||
These functions provide a complete API for creating streaming
|
||||
archive files.
|
||||
The general process is to first create the
|
||||
Tn struct archive
|
||||
object, set any desired options, initialize the archive, append entries, then
|
||||
close the archive and release all resources.
|
||||
.SS Create archive object
|
||||
See
|
||||
\fBarchive_write_new\fP(3).
|
||||
.PP
|
||||
To write an archive, you must first obtain an initialized
|
||||
Tn struct archive
|
||||
object from
|
||||
\fB\%archive_write_new\fP().
|
||||
.SS Enable filters and formats, configure block size and padding
|
||||
See
|
||||
\fBarchive_write_filter\fP(3),
|
||||
\fBarchive_write_format\fP(3)
|
||||
and
|
||||
\fBarchive_write_blocksize\fP(3).
|
||||
.PP
|
||||
You can then modify this object for the desired operations with the
|
||||
various
|
||||
\fB\%archive_write_set_XXX\fP()
|
||||
functions.
|
||||
In particular, you will need to invoke appropriate
|
||||
\fB\%archive_write_add_XXX\fP()
|
||||
and
|
||||
\fB\%archive_write_set_XXX\fP()
|
||||
functions to enable the corresponding compression and format
|
||||
support.
|
||||
.SS Set options
|
||||
See
|
||||
\fBarchive_write_set_options\fP(3).
|
||||
.SS Open archive
|
||||
See
|
||||
\fBarchive_write_open\fP(3).
|
||||
.PP
|
||||
Once you have prepared the
|
||||
Tn struct archive
|
||||
object, you call
|
||||
\fB\%archive_write_open\fP()
|
||||
to actually open the archive and prepare it for writing.
|
||||
There are several variants of this function;
|
||||
the most basic expects you to provide pointers to several
|
||||
functions that can provide blocks of bytes from the archive.
|
||||
There are convenience forms that allow you to
|
||||
specify a filename, file descriptor,
|
||||
\fIFILE *\fP
|
||||
object, or a block of memory from which to write the archive data.
|
||||
.SS Produce archive
|
||||
See
|
||||
\fBarchive_write_header\fP(3)
|
||||
and
|
||||
\fBarchive_write_data\fP(3).
|
||||
.PP
|
||||
Individual archive entries are written in a three-step
|
||||
process:
|
||||
You first initialize a
|
||||
Tn struct archive_entry
|
||||
structure with information about the new entry.
|
||||
At a minimum, you should set the pathname of the
|
||||
entry and provide a
|
||||
\fIstruct\fP stat
|
||||
with a valid
|
||||
\fIst_mode\fP
|
||||
field, which specifies the type of object and
|
||||
\fIst_size\fP
|
||||
field, which specifies the size of the data portion of the object.
|
||||
.SS Release resources
|
||||
See
|
||||
\fBarchive_write_free\fP(3).
|
||||
.PP
|
||||
After all entries have been written, use the
|
||||
\fB\%archive_write_free\fP()
|
||||
function to release all resources.
|
||||
.SH EXAMPLES
|
||||
.ad l
|
||||
The following sketch illustrates basic usage of the library.
|
||||
In this example,
|
||||
the callback functions are simply wrappers around the standard
|
||||
\fBopen\fP(2),
|
||||
\fBwrite\fP(2),
|
||||
and
|
||||
\fBclose\fP(2)
|
||||
system calls.
|
||||
.RS 4
|
||||
.nf
|
||||
#ifdef __linux__
|
||||
#define _FILE_OFFSET_BITS 64
|
||||
#endif
|
||||
#include <sys/stat.h>
|
||||
#include <archive.h>
|
||||
#include <archive_entry.h>
|
||||
#include <fcntl.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
struct mydata {
|
||||
const char *name;
|
||||
int fd;
|
||||
};
|
||||
int
|
||||
myopen(struct archive *a, void *client_data)
|
||||
{
|
||||
struct mydata *mydata = client_data;
|
||||
mydata->fd = open(mydata->name, O_WRONLY | O_CREAT, 0644);
|
||||
if (mydata->fd >= 0)
|
||||
return (ARCHIVE_OK);
|
||||
else
|
||||
return (ARCHIVE_FATAL);
|
||||
}
|
||||
la_ssize_t
|
||||
mywrite(struct archive *a, void *client_data, const void *buff, size_t n)
|
||||
{
|
||||
struct mydata *mydata = client_data;
|
||||
return (write(mydata->fd, buff, n));
|
||||
}
|
||||
int
|
||||
myclose(struct archive *a, void *client_data)
|
||||
{
|
||||
struct mydata *mydata = client_data;
|
||||
if (mydata->fd > 0)
|
||||
close(mydata->fd);
|
||||
return (0);
|
||||
}
|
||||
void
|
||||
write_archive(const char *outname, const char **filename)
|
||||
{
|
||||
struct mydata *mydata = malloc(sizeof(struct mydata));
|
||||
struct archive *a;
|
||||
struct archive_entry *entry;
|
||||
struct stat st;
|
||||
char buff[8192];
|
||||
int len;
|
||||
int fd;
|
||||
a = archive_write_new();
|
||||
mydata->name = outname;
|
||||
/* Set archive format and filter according to output file extension.
|
||||
* If it fails, set default format. Platform depended function.
|
||||
* See supported formats in archive_write_set_format_filter_by_ext.c */
|
||||
if (archive_write_set_format_filter_by_ext(a, outname) != ARCHIVE_OK) {
|
||||
archive_write_add_filter_gzip(a);
|
||||
archive_write_set_format_ustar(a);
|
||||
}
|
||||
archive_write_open(a, mydata, myopen, mywrite, myclose);
|
||||
while (*filename) {
|
||||
stat(*filename, &st);
|
||||
entry = archive_entry_new();
|
||||
archive_entry_copy_stat(entry, &st);
|
||||
archive_entry_set_pathname(entry, *filename);
|
||||
archive_write_header(a, entry);
|
||||
if ((fd = open(*filename, O_RDONLY)) != -1) {
|
||||
len = read(fd, buff, sizeof(buff));
|
||||
while (len > 0) {
|
||||
archive_write_data(a, buff, len);
|
||||
len = read(fd, buff, sizeof(buff));
|
||||
}
|
||||
close(fd);
|
||||
}
|
||||
archive_entry_free(entry);
|
||||
filename++;
|
||||
}
|
||||
archive_write_free(a);
|
||||
}
|
||||
int main(int argc, const char **argv)
|
||||
{
|
||||
const char *outname;
|
||||
argv++;
|
||||
outname = *argv++;
|
||||
write_archive(outname, argv);
|
||||
return 0;
|
||||
}
|
||||
.RE
|
||||
.SH SEE ALSO
|
||||
.ad l
|
||||
\fBtar\fP(1),
|
||||
\fBarchive_write_set_options\fP(3),
|
||||
\fBlibarchive\fP(3),
|
||||
\fBcpio\fP(5),
|
||||
\fBmtree\fP(5),
|
||||
\fBtar\fP(5)
|
||||
.SH HISTORY
|
||||
.ad l
|
||||
The
|
||||
\fB\%libarchive\fP
|
||||
library first appeared in
|
||||
FreeBSD 5.3.
|
||||
.SH AUTHORS
|
||||
.ad l
|
||||
-nosplit
|
||||
The
|
||||
\fB\%libarchive\fP
|
||||
library was written by
|
||||
Tim Kientzle \%<kientzle@acm.org.>
|
||||
.SH BUGS
|
||||
.ad l
|
||||
There are many peculiar bugs in historic tar implementations that may cause
|
||||
certain programs to reject archives written by this library.
|
||||
For example, several historic implementations calculated header checksums
|
||||
incorrectly and will thus reject valid archives; GNU tar does not fully support
|
||||
pax interchange format; some old tar implementations required specific
|
||||
field terminations.
|
||||
.PP
|
||||
The default pax interchange format eliminates most of the historic
|
||||
tar limitations and provides a generic key/value attribute facility
|
||||
for vendor-defined extensions.
|
||||
One oversight in POSIX is the failure to provide a standard attribute
|
||||
for large device numbers.
|
||||
This library uses
|
||||
``SCHILY.devminor''
|
||||
and
|
||||
``SCHILY.devmajor''
|
||||
for device numbers that exceed the range supported by the backwards-compatible
|
||||
ustar header.
|
||||
These keys are compatible with Joerg Schilling's
|
||||
\fB\%star\fP
|
||||
archiver.
|
||||
Other implementations may not recognize these keys and will thus be unable
|
||||
to correctly restore device nodes with large device numbers from archives
|
||||
created by this library.
|
104
dependencies/libarchive-3.4.2/doc/man/archive_write_blocksize.3
vendored
Normal file
104
dependencies/libarchive-3.4.2/doc/man/archive_write_blocksize.3
vendored
Normal file
|
@ -0,0 +1,104 @@
|
|||
.TH ARCHIVE_WRITE_BLOCKSIZE 3 "February 2, 2012" ""
|
||||
.SH NAME
|
||||
.ad l
|
||||
\fB\%archive_write_get_bytes_per_block\fP,
|
||||
\fB\%archive_write_set_bytes_per_block\fP,
|
||||
\fB\%archive_write_get_bytes_in_last_block\fP,
|
||||
\fB\%archive_write_set_bytes_in_last_block\fP
|
||||
\- functions for creating archives
|
||||
.SH LIBRARY
|
||||
.ad l
|
||||
Streaming Archive Library (libarchive, -larchive)
|
||||
.SH SYNOPSIS
|
||||
.ad l
|
||||
\fB#include <archive.h>\fP
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_get_bytes_per_block\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_set_bytes_per_block\fP(\fI\%struct\ archive\ *\fP, \fI\%int\ bytes_per_block\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_get_bytes_in_last_block\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_set_bytes_in_last_block\fP(\fI\%struct\ archive\ *\fP, \fI\%int\fP);
|
||||
.SH DESCRIPTION
|
||||
.ad l
|
||||
.RS 5
|
||||
.TP
|
||||
\fB\%archive_write_set_bytes_per_block\fP()
|
||||
Sets the block size used for writing the archive data.
|
||||
Every call to the write callback function, except possibly the last one, will
|
||||
use this value for the length.
|
||||
The default is to use a block size of 10240 bytes.
|
||||
Note that a block size of zero will suppress internal blocking
|
||||
and cause writes to be sent directly to the write callback as they occur.
|
||||
.TP
|
||||
\fB\%archive_write_get_bytes_per_block\fP()
|
||||
Retrieve the block size to be used for writing.
|
||||
A value of -1 here indicates that the library should use default values.
|
||||
A value of zero indicates that internal blocking is suppressed.
|
||||
.TP
|
||||
\fB\%archive_write_set_bytes_in_last_block\fP()
|
||||
Sets the block size used for writing the last block.
|
||||
If this value is zero, the last block will be padded to the same size
|
||||
as the other blocks.
|
||||
Otherwise, the final block will be padded to a multiple of this size.
|
||||
In particular, setting it to 1 will cause the final block to not be padded.
|
||||
For compressed output, any padding generated by this option
|
||||
is applied only after the compression.
|
||||
The uncompressed data is always unpadded.
|
||||
The default is to pad the last block to the full block size (note that
|
||||
\fB\%archive_write_open_filename\fP()
|
||||
will set this based on the file type).
|
||||
Unlike the other
|
||||
``set''
|
||||
functions, this function can be called after the archive is opened.
|
||||
.TP
|
||||
\fB\%archive_write_get_bytes_in_last_block\fP()
|
||||
Retrieve the currently-set value for last block size.
|
||||
A value of -1 here indicates that the library should use default values.
|
||||
.RE
|
||||
.SH RETURN VALUES
|
||||
.ad l
|
||||
\fB\%archive_write_set_bytes_per_block\fP()
|
||||
and
|
||||
\fB\%archive_write_set_bytes_in_last_block\fP()
|
||||
return
|
||||
\fBARCHIVE_OK\fP
|
||||
on success, or
|
||||
\fBARCHIVE_FATAL\fP.
|
||||
.PP
|
||||
\fB\%archive_write_get_bytes_per_block\fP()
|
||||
and
|
||||
\fB\%archive_write_get_bytes_in_last_block\fP()
|
||||
return currently configured block size
|
||||
Po
|
||||
.RS 4
|
||||
-1
|
||||
.RE
|
||||
indicates the default block size
|
||||
Pc,
|
||||
or
|
||||
\fBARCHIVE_FATAL\fP.
|
||||
.SH ERRORS
|
||||
.ad l
|
||||
Detailed error codes and textual descriptions are available from the
|
||||
\fB\%archive_errno\fP()
|
||||
and
|
||||
\fB\%archive_error_string\fP()
|
||||
functions.
|
||||
.SH SEE ALSO
|
||||
.ad l
|
||||
\fBtar\fP(1),
|
||||
\fBarchive_write_set_options\fP(3),
|
||||
\fBlibarchive\fP(3),
|
||||
\fBcpio\fP(5),
|
||||
\fBmtree\fP(5),
|
||||
\fBtar\fP(5)
|
71
dependencies/libarchive-3.4.2/doc/man/archive_write_data.3
vendored
Normal file
71
dependencies/libarchive-3.4.2/doc/man/archive_write_data.3
vendored
Normal file
|
@ -0,0 +1,71 @@
|
|||
.TH ARCHIVE_WRITE_DATA 3 "February 28, 2017" ""
|
||||
.SH NAME
|
||||
.ad l
|
||||
\fB\%archive_write_data\fP,
|
||||
\fB\%archive_write_data_block\fP
|
||||
\- functions for creating archives
|
||||
.SH LIBRARY
|
||||
.ad l
|
||||
Streaming Archive Library (libarchive, -larchive)
|
||||
.SH SYNOPSIS
|
||||
.ad l
|
||||
\fB#include <archive.h>\fP
|
||||
.br
|
||||
\fIla_ssize_t\fP
|
||||
.br
|
||||
\fB\%archive_write_data\fP(\fI\%struct\ archive\ *\fP, \fI\%const\ void\ *\fP, \fI\%size_t\fP);
|
||||
.br
|
||||
\fIla_ssize_t\fP
|
||||
.br
|
||||
\fB\%archive_write_data_block\fP(\fI\%struct\ archive\ *\fP, \fI\%const\ void\ *\fP, \fI\%size_t\ size\fP, \fI\%int64_t\ offset\fP);
|
||||
.SH DESCRIPTION
|
||||
.ad l
|
||||
.RS 5
|
||||
.TP
|
||||
\fB\%archive_write_data\fP()
|
||||
Write data corresponding to the header just written.
|
||||
.TP
|
||||
\fB\%archive_write_data_block\fP()
|
||||
Write data corresponding to the header just written.
|
||||
This is like
|
||||
\fB\%archive_write_data\fP()
|
||||
except that it performs a seek on the file being
|
||||
written to the specified offset before writing the data.
|
||||
This is useful when restoring sparse files from archive
|
||||
formats that support sparse files.
|
||||
Returns number of bytes written or -1 on error.
|
||||
(Note: This is currently not supported for
|
||||
Tn archive_write
|
||||
handles, only for
|
||||
Tn archive_write_disk
|
||||
handles.
|
||||
.RE
|
||||
.SH RETURN VALUES
|
||||
.ad l
|
||||
This function returns the number of bytes actually written, or
|
||||
a negative error code on error.
|
||||
.SH ERRORS
|
||||
.ad l
|
||||
Detailed error codes and textual descriptions are available from the
|
||||
\fB\%archive_errno\fP()
|
||||
and
|
||||
\fB\%archive_error_string\fP()
|
||||
functions.
|
||||
.SH BUGS
|
||||
.ad l
|
||||
In libarchive 3.x, this function sometimes returns
|
||||
zero on success instead of returning the number of bytes written.
|
||||
Specifically, this occurs when writing to an
|
||||
Vt archive_write_disk
|
||||
handle.
|
||||
Clients should treat any value less than zero as an error
|
||||
and consider any non-negative value as success.
|
||||
.SH SEE ALSO
|
||||
.ad l
|
||||
\fBtar\fP(1),
|
||||
\fBarchive_write_finish_entry\fP(3),
|
||||
\fBarchive_write_set_options\fP(3),
|
||||
\fBlibarchive\fP(3),
|
||||
\fBcpio\fP(5),
|
||||
\fBmtree\fP(5),
|
||||
\fBtar\fP(5)
|
364
dependencies/libarchive-3.4.2/doc/man/archive_write_disk.3
vendored
Normal file
364
dependencies/libarchive-3.4.2/doc/man/archive_write_disk.3
vendored
Normal file
|
@ -0,0 +1,364 @@
|
|||
.TH ARCHIVE_WRITE_DISK 3 "January 19, 2020" ""
|
||||
.SH NAME
|
||||
.ad l
|
||||
\fB\%archive_write_disk_new\fP,
|
||||
\fB\%archive_write_disk_set_options\fP,
|
||||
\fB\%archive_write_disk_set_skip_file\fP,
|
||||
\fB\%archive_write_disk_set_group_lookup\fP,
|
||||
\fB\%archive_write_disk_set_standard_lookup\fP,
|
||||
\fB\%archive_write_disk_set_user_lookup\fP
|
||||
\- functions for creating objects on disk
|
||||
.SH LIBRARY
|
||||
.ad l
|
||||
Streaming Archive Library (libarchive, -larchive)
|
||||
.SH SYNOPSIS
|
||||
.ad l
|
||||
\fB#include <archive.h>\fP
|
||||
.br
|
||||
\fIstruct archive *\fP
|
||||
.br
|
||||
\fB\%archive_write_disk_new\fP(\fI\%void\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_disk_set_options\fP(\fI\%struct\ archive\ *\fP, \fI\%int\ flags\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_disk_set_skip_file\fP(\fI\%struct\ archive\ *\fP, \fI\%dev_t\fP, \fI\%ino_t\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_disk_set_group_lookup\fP(\fI\%struct\ archive\ *\fP, \fI\%void\ *\fP, \fI\%gid_t\ (*)(void\ *,\ const\ char\ *gname,\ gid_t\ gid)\fP, \fI\%void\ (*cleanup)(void\ *)\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_disk_set_standard_lookup\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_disk_set_user_lookup\fP(\fI\%struct\ archive\ *\fP, \fI\%void\ *\fP, \fI\%uid_t\ (*)(void\ *,\ const\ char\ *uname,\ uid_t\ uid)\fP, \fI\%void\ (*cleanup)(void\ *)\fP);
|
||||
.SH DESCRIPTION
|
||||
.ad l
|
||||
These functions provide a complete API for creating objects on
|
||||
disk from
|
||||
Tn struct archive_entry
|
||||
descriptions.
|
||||
They are most naturally used when extracting objects from an archive
|
||||
using the
|
||||
\fB\%archive_read\fP()
|
||||
interface.
|
||||
The general process is to read
|
||||
Tn struct archive_entry
|
||||
objects from an archive, then write those objects to a
|
||||
Tn struct archive
|
||||
object created using the
|
||||
\fB\%archive_write_disk\fP()
|
||||
family functions.
|
||||
This interface is deliberately very similar to the
|
||||
\fB\%archive_write\fP()
|
||||
interface used to write objects to a streaming archive.
|
||||
.RS 5
|
||||
.TP
|
||||
\fB\%archive_write_disk_new\fP()
|
||||
Allocates and initializes a
|
||||
Tn struct archive
|
||||
object suitable for writing objects to disk.
|
||||
.TP
|
||||
\fB\%archive_write_disk_set_skip_file\fP()
|
||||
Records the device and inode numbers of a file that should not be
|
||||
overwritten.
|
||||
This is typically used to ensure that an extraction process does not
|
||||
overwrite the archive from which objects are being read.
|
||||
This capability is technically unnecessary but can be a significant
|
||||
performance optimization in practice.
|
||||
.TP
|
||||
\fB\%archive_write_disk_set_options\fP()
|
||||
The options field consists of a bitwise OR of one or more of the
|
||||
following values:
|
||||
.RS 5
|
||||
.TP
|
||||
\fBARCHIVE_EXTRACT_ACL\fP
|
||||
Attempt to restore Access Control Lists.
|
||||
By default, extended ACLs are ignored.
|
||||
.TP
|
||||
\fBARCHIVE_EXTRACT_CLEAR_NOCHANGE_FFLAGS\fP
|
||||
Before removing a file system object prior to replacing it, clear
|
||||
platform-specific file flags which might prevent its removal.
|
||||
.TP
|
||||
\fBARCHIVE_EXTRACT_FFLAGS\fP
|
||||
Attempt to restore file attributes (file flags).
|
||||
By default, file attributes are ignored.
|
||||
See
|
||||
\fBchattr\fP(1)
|
||||
(Linux)
|
||||
or
|
||||
\fBchflags\fP(1)
|
||||
(FreeBSD, Mac OS X)
|
||||
for more information on file attributes.
|
||||
.TP
|
||||
\fBARCHIVE_EXTRACT_MAC_METADATA\fP
|
||||
Mac OS X specific.
|
||||
Restore metadata using
|
||||
\fBcopyfile\fP(3).
|
||||
By default,
|
||||
\fBcopyfile\fP(3)
|
||||
metadata is ignored.
|
||||
.TP
|
||||
\fBARCHIVE_EXTRACT_NO_OVERWRITE\fP
|
||||
Existing files on disk will not be overwritten.
|
||||
By default, existing regular files are truncated and overwritten;
|
||||
existing directories will have their permissions updated;
|
||||
other pre-existing objects are unlinked and recreated from scratch.
|
||||
.TP
|
||||
\fBARCHIVE_EXTRACT_OWNER\fP
|
||||
The user and group IDs should be set on the restored file.
|
||||
By default, the user and group IDs are not restored.
|
||||
.TP
|
||||
\fBARCHIVE_EXTRACT_PERM\fP
|
||||
Full permissions (including SGID, SUID, and sticky bits) should
|
||||
be restored exactly as specified, without obeying the
|
||||
current umask.
|
||||
Note that SUID and SGID bits can only be restored if the
|
||||
user and group ID of the object on disk are correct.
|
||||
If
|
||||
\fBARCHIVE_EXTRACT_OWNER\fP
|
||||
is not specified, then SUID and SGID bits will only be restored
|
||||
if the default user and group IDs of newly-created objects on disk
|
||||
happen to match those specified in the archive entry.
|
||||
By default, only basic permissions are restored, and umask is obeyed.
|
||||
.TP
|
||||
\fBARCHIVE_EXTRACT_SAFE_WRITES\fP
|
||||
Extract files atomically, by first creating a unique temporary file and then
|
||||
renaming it to its required destination name.
|
||||
This avoids a race where an application might see a partial file (or no
|
||||
file) during extraction.
|
||||
.TP
|
||||
\fBARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS\fP
|
||||
Refuse to extract an absolute path.
|
||||
The default is to not refuse such paths.
|
||||
.TP
|
||||
\fBARCHIVE_EXTRACT_SECURE_NODOTDOT\fP
|
||||
Refuse to extract a path that contains a
|
||||
\fI\& ..\fP
|
||||
element anywhere within it.
|
||||
The default is to not refuse such paths.
|
||||
Note that paths ending in
|
||||
\fI\& ..\fP
|
||||
always cause an error, regardless of this flag.
|
||||
.TP
|
||||
\fBARCHIVE_EXTRACT_SECURE_SYMLINKS\fP
|
||||
Refuse to extract any object whose final location would be altered
|
||||
by a symlink on disk.
|
||||
This is intended to help guard against a variety of mischief
|
||||
caused by archives that (deliberately or otherwise) extract
|
||||
files outside of the current directory.
|
||||
The default is not to perform this check.
|
||||
If
|
||||
.TP
|
||||
\fBARCHIVE_EXTRACT_SPARSE\fP
|
||||
Scan data for blocks of NUL bytes and try to recreate them with holes.
|
||||
This results in sparse files, independent of whether the archive format
|
||||
supports or uses them.
|
||||
\fBARCHIVE_EXTRACT_UNLINK\fP
|
||||
is specified together with this option, the library will
|
||||
remove any intermediate symlinks it finds and return an
|
||||
error only if such symlink could not be removed.
|
||||
.TP
|
||||
\fBARCHIVE_EXTRACT_TIME\fP
|
||||
The timestamps (mtime, ctime, and atime) should be restored.
|
||||
By default, they are ignored.
|
||||
Note that restoring of atime is not currently supported.
|
||||
.TP
|
||||
\fBARCHIVE_EXTRACT_UNLINK\fP
|
||||
Existing files on disk will be unlinked before any attempt to
|
||||
create them.
|
||||
In some cases, this can prove to be a significant performance improvement.
|
||||
By default, existing files are truncated and rewritten, but
|
||||
the file is not recreated.
|
||||
In particular, the default behavior does not break existing hard links.
|
||||
.TP
|
||||
\fBARCHIVE_EXTRACT_XATTR\fP
|
||||
Attempt to restore extended file attributes.
|
||||
By default, they are ignored.
|
||||
See
|
||||
\fBxattr\fP(7)
|
||||
(Linux,)
|
||||
\fBxattr\fP(2)
|
||||
(Mac OS X,)
|
||||
or
|
||||
\fBgetextattr\fP(8)
|
||||
(FreeBSD)
|
||||
for more information on extended file attributes.
|
||||
.RE
|
||||
.TP
|
||||
\fB\%archive_write_disk_set_group_lookup\fP(),
|
||||
\fB\%archive_write_disk_set_user_lookup\fP()
|
||||
The
|
||||
Tn struct archive_entry
|
||||
objects contain both names and ids that can be used to identify users
|
||||
and groups.
|
||||
These names and ids describe the ownership of the file itself and
|
||||
also appear in ACL lists.
|
||||
By default, the library uses the ids and ignores the names, but
|
||||
this can be overridden by registering user and group lookup functions.
|
||||
To register, you must provide a lookup function which
|
||||
accepts both a name and id and returns a suitable id.
|
||||
You may also provide a
|
||||
Tn void *
|
||||
pointer to a private data structure and a cleanup function for
|
||||
that data.
|
||||
The cleanup function will be invoked when the
|
||||
Tn struct archive
|
||||
object is destroyed.
|
||||
.TP
|
||||
\fB\%archive_write_disk_set_standard_lookup\fP()
|
||||
This convenience function installs a standard set of user
|
||||
and group lookup functions.
|
||||
These functions use
|
||||
\fBgetpwnam\fP(3)
|
||||
and
|
||||
\fBgetgrnam\fP(3)
|
||||
to convert names to ids, defaulting to the ids if the names cannot
|
||||
be looked up.
|
||||
These functions also implement a simple memory cache to reduce
|
||||
the number of calls to
|
||||
\fBgetpwnam\fP(3)
|
||||
and
|
||||
\fBgetgrnam\fP(3).
|
||||
.RE
|
||||
More information about the
|
||||
\fIstruct\fP archive
|
||||
object and the overall design of the library can be found in the
|
||||
\fBlibarchive\fP(3)
|
||||
overview.
|
||||
Many of these functions are also documented under
|
||||
\fBarchive_write\fP(3).
|
||||
.SH RETURN VALUES
|
||||
.ad l
|
||||
Most functions return
|
||||
\fBARCHIVE_OK\fP
|
||||
(zero) on success, or one of several non-zero
|
||||
error codes for errors.
|
||||
Specific error codes include:
|
||||
\fBARCHIVE_RETRY\fP
|
||||
for operations that might succeed if retried,
|
||||
\fBARCHIVE_WARN\fP
|
||||
for unusual conditions that do not prevent further operations, and
|
||||
\fBARCHIVE_FATAL\fP
|
||||
for serious errors that make remaining operations impossible.
|
||||
.PP
|
||||
\fB\%archive_write_disk_new\fP()
|
||||
returns a pointer to a newly-allocated
|
||||
Tn struct archive
|
||||
object.
|
||||
.PP
|
||||
\fB\%archive_write_data\fP()
|
||||
returns a count of the number of bytes actually written,
|
||||
or
|
||||
.RS 4
|
||||
-1
|
||||
.RE
|
||||
on error.
|
||||
.SH ERRORS
|
||||
.ad l
|
||||
Detailed error codes and textual descriptions are available from the
|
||||
\fB\%archive_errno\fP()
|
||||
and
|
||||
\fB\%archive_error_string\fP()
|
||||
functions.
|
||||
.SH SEE ALSO
|
||||
.ad l
|
||||
\fBtar\fP(1),
|
||||
\fBarchive_read\fP(3),
|
||||
\fBarchive_write\fP(3),
|
||||
\fBlibarchive\fP(3)
|
||||
.SH HISTORY
|
||||
.ad l
|
||||
The
|
||||
\fB\%libarchive\fP
|
||||
library first appeared in
|
||||
FreeBSD 5.3.
|
||||
The
|
||||
\fB\%archive_write_disk\fP
|
||||
interface was added to
|
||||
\fB\%libarchive\fP 2.0
|
||||
and first appeared in
|
||||
FreeBSD 6.3.
|
||||
.SH AUTHORS
|
||||
.ad l
|
||||
-nosplit
|
||||
The
|
||||
\fB\%libarchive\fP
|
||||
library was written by
|
||||
Tim Kientzle \%<kientzle@acm.org.>
|
||||
.SH BUGS
|
||||
.ad l
|
||||
Directories are actually extracted in two distinct phases.
|
||||
Directories are created during
|
||||
\fB\%archive_write_header\fP(),
|
||||
but final permissions are not set until
|
||||
\fB\%archive_write_close\fP().
|
||||
This separation is necessary to correctly handle borderline
|
||||
cases such as a non-writable directory containing
|
||||
files, but can cause unexpected results.
|
||||
In particular, directory permissions are not fully
|
||||
restored until the archive is closed.
|
||||
If you use
|
||||
\fBchdir\fP(2)
|
||||
to change the current directory between calls to
|
||||
\fB\%archive_read_extract\fP()
|
||||
or before calling
|
||||
\fB\%archive_read_close\fP(),
|
||||
you may confuse the permission-setting logic with
|
||||
the result that directory permissions are restored
|
||||
incorrectly.
|
||||
.PP
|
||||
The library attempts to create objects with filenames longer than
|
||||
\fBPATH_MAX\fP
|
||||
by creating prefixes of the full path and changing the current directory.
|
||||
Currently, this logic is limited in scope; the fixup pass does
|
||||
not work correctly for such objects and the symlink security check
|
||||
option disables the support for very long pathnames.
|
||||
.PP
|
||||
Restoring the path
|
||||
\fIaa/../bb\fP
|
||||
does create each intermediate directory.
|
||||
In particular, the directory
|
||||
\fIaa\fP
|
||||
is created as well as the final object
|
||||
\fIbb\fP.
|
||||
In theory, this can be exploited to create an entire directory hierarchy
|
||||
with a single request.
|
||||
Of course, this does not work if the
|
||||
\fBARCHIVE_EXTRACT_NODOTDOT\fP
|
||||
option is specified.
|
||||
.PP
|
||||
Implicit directories are always created obeying the current umask.
|
||||
Explicit objects are created obeying the current umask unless
|
||||
\fBARCHIVE_EXTRACT_PERM\fP
|
||||
is specified, in which case they current umask is ignored.
|
||||
.PP
|
||||
SGID and SUID bits are restored only if the correct user and
|
||||
group could be set.
|
||||
If
|
||||
\fBARCHIVE_EXTRACT_OWNER\fP
|
||||
is not specified, then no attempt is made to set the ownership.
|
||||
In this case, SGID and SUID bits are restored only if the
|
||||
user and group of the final object happen to match those specified
|
||||
in the entry.
|
||||
.PP
|
||||
The
|
||||
``standard''
|
||||
user-id and group-id lookup functions are not the defaults because
|
||||
\fBgetgrnam\fP(3)
|
||||
and
|
||||
\fBgetpwnam\fP(3)
|
||||
are sometimes too large for particular applications.
|
||||
The current design allows the application author to use a more
|
||||
compact implementation when appropriate.
|
||||
.PP
|
||||
There should be a corresponding
|
||||
\fB\%archive_read_disk\fP
|
||||
interface that walks a directory hierarchy and returns archive
|
||||
entry objects.
|
141
dependencies/libarchive-3.4.2/doc/man/archive_write_filter.3
vendored
Normal file
141
dependencies/libarchive-3.4.2/doc/man/archive_write_filter.3
vendored
Normal file
|
@ -0,0 +1,141 @@
|
|||
.TH ARCHIVE_WRITE_FILTER 3 "August 14, 2014" ""
|
||||
.SH NAME
|
||||
.ad l
|
||||
\fB\%archive_write_add_filter_b64encode\fP,
|
||||
\fB\%archive_write_add_filter_by_name\fP,
|
||||
\fB\%archive_write_add_filter_bzip2\fP,
|
||||
\fB\%archive_write_add_filter_compress\fP,
|
||||
\fB\%archive_write_add_filter_grzip\fP,
|
||||
\fB\%archive_write_add_filter_gzip\fP,
|
||||
\fB\%archive_write_add_filter_lrzip\fP,
|
||||
\fB\%archive_write_add_filter_lz4\fP,
|
||||
\fB\%archive_write_add_filter_lzip\fP,
|
||||
\fB\%archive_write_add_filter_lzma\fP,
|
||||
\fB\%archive_write_add_filter_lzop\fP,
|
||||
\fB\%archive_write_add_filter_none\fP,
|
||||
\fB\%archive_write_add_filter_program\fP,
|
||||
\fB\%archive_write_add_filter_uuencode\fP,
|
||||
\fB\%archive_write_add_filter_xz\fP,
|
||||
\fB\%archive_write_add_filter_zstd\fP
|
||||
\- functions enabling output filters
|
||||
.SH LIBRARY
|
||||
.ad l
|
||||
Streaming Archive Library (libarchive, -larchive)
|
||||
.SH SYNOPSIS
|
||||
.ad l
|
||||
\fB#include <archive.h>\fP
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_add_filter_b64encode\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_add_filter_bzip2\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_add_filter_compress\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_add_filter_grzip\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_add_filter_gzip\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_add_filter_lrzip\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_add_filter_lz4\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_add_filter_lzip\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_add_filter_lzma\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_add_filter_lzop\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_add_filter_none\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_add_filter_program\fP(\fI\%struct\ archive\ *\fP, \fI\%const\ char\ *\ cmd\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_add_filter_uuencode\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_add_filter_xz\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_add_filter_zstd\fP(\fI\%struct\ archive\ *\fP);
|
||||
.SH DESCRIPTION
|
||||
.ad l
|
||||
.RS 5
|
||||
.TP
|
||||
\fB\%archive_write_add_filter_bzip2\fP(),
|
||||
\fB\%archive_write_add_filter_compress\fP(),
|
||||
\fB\%archive_write_add_filter_grzip\fP(),
|
||||
\fB\%archive_write_add_filter_gzip\fP(),
|
||||
\fB\%archive_write_add_filter_lrzip\fP(),
|
||||
\fB\%archive_write_add_filter_lz4\fP(),
|
||||
\fB\%archive_write_add_filter_lzip\fP(),
|
||||
\fB\%archive_write_add_filter_lzma\fP(),
|
||||
\fB\%archive_write_add_filter_lzop\fP(),
|
||||
\fB\%archive_write_add_filter_xz\fP(),
|
||||
\fB\%archive_write_add_filter_zstd\fP(),
|
||||
The resulting archive will be compressed as specified.
|
||||
Note that the compressed output is always properly blocked.
|
||||
.TP
|
||||
\fB\%archive_write_add_filter_b64encode\fP(),
|
||||
\fB\%archive_write_add_filter_uuencode\fP(),
|
||||
The output will be encoded as specified.
|
||||
The encoded output is always properly blocked.
|
||||
.TP
|
||||
\fB\%archive_write_add_filter_none\fP()
|
||||
This is never necessary.
|
||||
It is provided only for backwards compatibility.
|
||||
.TP
|
||||
\fB\%archive_write_add_filter_program\fP()
|
||||
The archive will be fed into the specified compression program.
|
||||
The output of that program is blocked and written to the client
|
||||
write callbacks.
|
||||
.RE
|
||||
.SH RETURN VALUES
|
||||
.ad l
|
||||
These functions return
|
||||
\fBARCHIVE_OK\fP
|
||||
on success, or
|
||||
\fBARCHIVE_FATAL\fP.
|
||||
.SH ERRORS
|
||||
.ad l
|
||||
Detailed error codes and textual descriptions are available from the
|
||||
\fB\%archive_errno\fP()
|
||||
and
|
||||
\fB\%archive_error_string\fP()
|
||||
functions.
|
||||
.SH SEE ALSO
|
||||
.ad l
|
||||
\fBtar\fP(1),
|
||||
\fBarchive_write\fP(3),
|
||||
\fBarchive_write_format\fP(3),
|
||||
\fBarchive_write_set_options\fP(3),
|
||||
\fBlibarchive\fP(3),
|
||||
\fBcpio\fP(5),
|
||||
\fBmtree\fP(5),
|
||||
\fBtar\fP(5)
|
57
dependencies/libarchive-3.4.2/doc/man/archive_write_finish_entry.3
vendored
Normal file
57
dependencies/libarchive-3.4.2/doc/man/archive_write_finish_entry.3
vendored
Normal file
|
@ -0,0 +1,57 @@
|
|||
.TH ARCHIVE_WRITE_FINISH_ENTRY 3 "February 28, 2017" ""
|
||||
.SH NAME
|
||||
.ad l
|
||||
\fB\%archive_write_finish_entry\fP
|
||||
\- functions for creating archives
|
||||
.SH LIBRARY
|
||||
.ad l
|
||||
Streaming Archive Library (libarchive, -larchive)
|
||||
.SH SYNOPSIS
|
||||
.ad l
|
||||
\fB#include <archive.h>\fP
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_finish_entry\fP(\fI\%struct\ archive\ *\fP);
|
||||
.SH DESCRIPTION
|
||||
.ad l
|
||||
Close out the entry just written.
|
||||
In particular, this writes out the final padding required by some formats.
|
||||
Ordinarily, clients never need to call this, as it
|
||||
is called automatically by
|
||||
\fB\%archive_write_header\fP()
|
||||
and
|
||||
\fB\%archive_write_close\fP()
|
||||
as needed.
|
||||
For
|
||||
Tn archive_write_disk
|
||||
handles, this flushes pending file attribute changes like modification time.
|
||||
.SH RETURN VALUES
|
||||
.ad l
|
||||
This function returns
|
||||
\fBARCHIVE_OK\fP
|
||||
on success, or one of several non-zero
|
||||
error codes for errors.
|
||||
Specific error codes include:
|
||||
\fBARCHIVE_RETRY\fP
|
||||
for operations that might succeed if retried,
|
||||
\fBARCHIVE_WARN\fP
|
||||
for unusual conditions that do not prevent further operations, and
|
||||
\fBARCHIVE_FATAL\fP
|
||||
for serious errors that make remaining operations impossible.
|
||||
.SH ERRORS
|
||||
.ad l
|
||||
Detailed error codes and textual descriptions are available from the
|
||||
\fB\%archive_errno\fP()
|
||||
and
|
||||
\fB\%archive_error_string\fP()
|
||||
functions.
|
||||
.SH SEE ALSO
|
||||
.ad l
|
||||
\fBtar\fP(1),
|
||||
\fBarchive_write_data\fP(3),
|
||||
\fBarchive_write_set_options\fP(3),
|
||||
\fBlibarchive\fP(3),
|
||||
\fBcpio\fP(5),
|
||||
\fBmtree\fP(5),
|
||||
\fBtar\fP(5)
|
197
dependencies/libarchive-3.4.2/doc/man/archive_write_format.3
vendored
Normal file
197
dependencies/libarchive-3.4.2/doc/man/archive_write_format.3
vendored
Normal file
|
@ -0,0 +1,197 @@
|
|||
.TH ARCHIVE_WRITE_FORMAT 3 "February 14, 2013" ""
|
||||
.SH NAME
|
||||
.ad l
|
||||
\fB\%archive_write_set_format\fP,
|
||||
\fB\%archive_write_set_format_7zip\fP,
|
||||
\fB\%archive_write_set_format_ar\fP,
|
||||
\fB\%archive_write_set_format_ar_bsd\fP,
|
||||
\fB\%archive_write_set_format_ar_svr4\fP,
|
||||
\fB\%archive_write_set_format_by_name\fP,
|
||||
\fB\%archive_write_set_format_cpio\fP,
|
||||
\fB\%archive_write_set_format_cpio_newc\fP,
|
||||
\fB\%archive_write_set_format_filter_by_ext\fP,
|
||||
\fB\%archive_write_set_format_filter_by_ext_def\fP,
|
||||
\fB\%archive_write_set_format_gnutar\fP,
|
||||
\fB\%archive_write_set_format_iso9660\fP,
|
||||
\fB\%archive_write_set_format_mtree\fP,
|
||||
\fB\%archive_write_set_format_mtree_classic\fP,
|
||||
\fB\%archive_write_set_format_mtree_default\fP,
|
||||
\fB\%archive_write_set_format_pax\fP,
|
||||
\fB\%archive_write_set_format_pax_restricted\fP,
|
||||
\fB\%archive_write_set_format_raw\fP,
|
||||
\fB\%archive_write_set_format_shar\fP,
|
||||
\fB\%archive_write_set_format_shar_dump\fP,
|
||||
\fB\%archive_write_set_format_ustar\fP,
|
||||
\fB\%archive_write_set_format_v7tar\fP,
|
||||
\fB\%archive_write_set_format_warc\fP,
|
||||
\fB\%archive_write_set_format_xar\fP,
|
||||
\fB\%archive_write_set_format_zip\fP
|
||||
\- functions for creating archives
|
||||
.SH LIBRARY
|
||||
.ad l
|
||||
Streaming Archive Library (libarchive, -larchive)
|
||||
.SH SYNOPSIS
|
||||
.ad l
|
||||
\fB#include <archive.h>\fP
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_set_format\fP(\fI\%struct\ archive\ *\fP, \fI\%int\ code\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_set_format_7zip\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_set_format_ar\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_set_format_ar_bsd\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_set_format_ar_svr4\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_set_format_by_name\fP(\fI\%struct\ archive\ *\fP, \fI\%const\ char\ *name\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_set_format_cpio\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_set_format_cpio_newc\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_set_format_filter_by_ext\fP(\fI\%struct\ archive\ *\fP, \fI\%const\ char\ *filename\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_set_format_filter_by_ext_def\fP(\fI\%struct\ archive\ *\fP, \fI\%const\ char\ *filename\fP, \fI\%const\ char\ *def_ext\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_set_format_gnutar\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_set_format_iso9660\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_set_format_mtree\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_set_format_pax\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_set_format_pax_restricted\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_set_format_raw\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_set_format_shar\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_set_format_shar_dump\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_set_format_ustar\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_set_format_v7tar\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_set_format_warc\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_set_format_xar\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_set_format_zip\fP(\fI\%struct\ archive\ *\fP);
|
||||
.SH DESCRIPTION
|
||||
.ad l
|
||||
These functions set the format that will be used for the archive.
|
||||
.PP
|
||||
The library can write a variety of common archive formats.
|
||||
.RS 5
|
||||
.TP
|
||||
\fB\%archive_write_set_format\fP()
|
||||
Sets the format based on the format code (see
|
||||
\fIarchive.h\fP
|
||||
for the full list of format codes).
|
||||
In particular, this can be used in conjunction with
|
||||
\fB\%archive_format\fP()
|
||||
to create a new archive with the same format as an existing archive.
|
||||
.TP
|
||||
\fB\%archive_write_set_format_by_name\fP()
|
||||
Sets the corresponding format based on the common name.
|
||||
.TP
|
||||
\fB\%archive_write_set_format_filter_by_ext\fP(),
|
||||
\fB\%archive_write_set_format_filter_by_ext_def\fP()
|
||||
Sets both filters and format based on the output filename.
|
||||
Supported extensions: .7z, .zip, .jar, .cpio, .iso, .a, .ar, .tar, .tgz, .tar.gz, .tar.bz2, .tar.xz
|
||||
.TP
|
||||
\fB\%archive_write_set_format_7zip\fP()
|
||||
\fB\%archive_write_set_format_ar_bsd\fP(),
|
||||
\fB\%archive_write_set_format_ar_svr4\fP(),
|
||||
\fB\%archive_write_set_format_cpio\fP()
|
||||
\fB\%archive_write_set_format_cpio_newc\fP()
|
||||
\fB\%archive_write_set_format_gnutar\fP()
|
||||
\fB\%archive_write_set_format_iso9660\fP()
|
||||
\fB\%archive_write_set_format_mtree\fP()
|
||||
\fB\%archive_write_set_format_mtree_classic\fP()
|
||||
\fB\%archive_write_set_format_pax\fP()
|
||||
\fB\%archive_write_set_format_pax_restricted\fP()
|
||||
\fB\%archive_write_set_format_raw\fP()
|
||||
\fB\%archive_write_set_format_shar\fP()
|
||||
\fB\%archive_write_set_format_shar_dump\fP()
|
||||
\fB\%archive_write_set_format_ustar\fP()
|
||||
\fB\%archive_write_set_format_v7tar\fP()
|
||||
\fB\%archive_write_set_format_warc\fP()
|
||||
\fB\%archive_write_set_format_xar\fP()
|
||||
\fB\%archive_write_set_format_zip\fP()
|
||||
Set the format as specified.
|
||||
More details on the formats supported by libarchive can be found in the
|
||||
\fBlibarchive-formats\fP(5)
|
||||
manual page.
|
||||
.RE
|
||||
.SH RETURN VALUES
|
||||
.ad l
|
||||
These functions return
|
||||
\fBARCHIVE_OK\fP
|
||||
on success, or
|
||||
\fBARCHIVE_FATAL\fP.
|
||||
.SH ERRORS
|
||||
.ad l
|
||||
Detailed error codes and textual descriptions are available from the
|
||||
\fB\%archive_errno\fP()
|
||||
and
|
||||
\fB\%archive_error_string\fP()
|
||||
functions.
|
||||
.SH SEE ALSO
|
||||
.ad l
|
||||
\fBtar\fP(1),
|
||||
\fBarchive_write\fP(3),
|
||||
\fBarchive_write_set_options\fP(3),
|
||||
\fBlibarchive\fP(3),
|
||||
\fBcpio\fP(5),
|
||||
\fBlibarchive-formats\fP(5),
|
||||
\fBmtree\fP(5),
|
||||
\fBtar\fP(5)
|
84
dependencies/libarchive-3.4.2/doc/man/archive_write_free.3
vendored
Normal file
84
dependencies/libarchive-3.4.2/doc/man/archive_write_free.3
vendored
Normal file
|
@ -0,0 +1,84 @@
|
|||
.TH ARCHIVE_WRITE_FREE 3 "February 2, 2012" ""
|
||||
.SH NAME
|
||||
.ad l
|
||||
\fB\%archive_write_fail\fP,
|
||||
\fB\%archive_write_close\fP,
|
||||
\fB\%archive_write_finish\fP,
|
||||
\fB\%archive_write_free\fP
|
||||
\- functions for creating archives
|
||||
.SH LIBRARY
|
||||
.ad l
|
||||
Streaming Archive Library (libarchive, -larchive)
|
||||
.SH SYNOPSIS
|
||||
.ad l
|
||||
\fB#include <archive.h>\fP
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_fail\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_close\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_finish\fP(\fI\%struct\ archive\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_free\fP(\fI\%struct\ archive\ *\fP);
|
||||
.SH DESCRIPTION
|
||||
.ad l
|
||||
.RS 5
|
||||
.TP
|
||||
\fB\%archive_write_fail\fP()
|
||||
Always returns
|
||||
\fBARCHIVE_FATAL\fP.
|
||||
This marks the archive object as being unusable;
|
||||
after calling this function, the only call that can succeed is
|
||||
\fB\%archive_write_free\fP()
|
||||
to release the resources.
|
||||
This can be used to speed recovery when the archive creation
|
||||
must be aborted.
|
||||
Note that the created archive is likely to be malformed in this case;
|
||||
.TP
|
||||
\fB\%archive_write_close\fP()
|
||||
Complete the archive and invoke the close callback.
|
||||
.TP
|
||||
\fB\%archive_write_finish\fP()
|
||||
This is a deprecated synonym for
|
||||
\fB\%archive_write_free\fP().
|
||||
.TP
|
||||
\fB\%archive_write_free\fP()
|
||||
Invokes
|
||||
\fB\%archive_write_close\fP()
|
||||
if necessary, then releases all resources.
|
||||
If you need detailed information about
|
||||
\fB\%archive_write_close\fP()
|
||||
failures, you should be careful to call it separately, as
|
||||
you cannot obtain error information after
|
||||
\fB\%archive_write_free\fP()
|
||||
returns.
|
||||
.RE
|
||||
.SH RETURN VALUES
|
||||
.ad l
|
||||
These functions return
|
||||
\fBARCHIVE_OK\fP
|
||||
on success, or
|
||||
\fBARCHIVE_FATAL\fP.
|
||||
.SH ERRORS
|
||||
.ad l
|
||||
Detailed error codes and textual descriptions are available from the
|
||||
\fB\%archive_errno\fP()
|
||||
and
|
||||
\fB\%archive_error_string\fP()
|
||||
functions.
|
||||
.SH SEE ALSO
|
||||
.ad l
|
||||
\fBtar\fP(1),
|
||||
\fBarchive_write_set_options\fP(3),
|
||||
\fBlibarchive\fP(3),
|
||||
\fBcpio\fP(5),
|
||||
\fBmtree\fP(5),
|
||||
\fBtar\fP(5)
|
51
dependencies/libarchive-3.4.2/doc/man/archive_write_header.3
vendored
Normal file
51
dependencies/libarchive-3.4.2/doc/man/archive_write_header.3
vendored
Normal file
|
@ -0,0 +1,51 @@
|
|||
.TH ARCHIVE_WRITE_HEADER 3 "February 2, 2012" ""
|
||||
.SH NAME
|
||||
.ad l
|
||||
\fB\%archive_write_header\fP
|
||||
\- functions for creating archives
|
||||
.SH LIBRARY
|
||||
.ad l
|
||||
Streaming Archive Library (libarchive, -larchive)
|
||||
.SH SYNOPSIS
|
||||
.ad l
|
||||
\fB#include <archive.h>\fP
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_header\fP(\fI\%struct\ archive\ *\fP, \fI\%struct\ archive_entry\ *\fP);
|
||||
.SH DESCRIPTION
|
||||
.ad l
|
||||
Build and write a header using the data in the provided
|
||||
Tn struct archive_entry
|
||||
structure.
|
||||
See
|
||||
\fBarchive_entry\fP(3)
|
||||
for information on creating and populating
|
||||
Tn struct archive_entry
|
||||
objects.
|
||||
.SH RETURN VALUES
|
||||
.ad l
|
||||
This function returns
|
||||
\fBARCHIVE_OK\fP
|
||||
on success, or one of the following on error:
|
||||
\fBARCHIVE_RETRY\fP
|
||||
for operations that might succeed if retried,
|
||||
\fBARCHIVE_WARN\fP
|
||||
for unusual conditions that do not prevent further operations, and
|
||||
\fBARCHIVE_FATAL\fP
|
||||
for serious errors that make remaining operations impossible.
|
||||
.SH ERRORS
|
||||
.ad l
|
||||
Detailed error codes and textual descriptions are available from the
|
||||
\fB\%archive_errno\fP()
|
||||
and
|
||||
\fB\%archive_error_string\fP()
|
||||
functions.
|
||||
.SH SEE ALSO
|
||||
.ad l
|
||||
\fBtar\fP(1),
|
||||
\fBarchive_write_set_options\fP(3),
|
||||
\fBlibarchive\fP(3),
|
||||
\fBcpio\fP(5),
|
||||
\fBmtree\fP(5),
|
||||
\fBtar\fP(5)
|
36
dependencies/libarchive-3.4.2/doc/man/archive_write_new.3
vendored
Normal file
36
dependencies/libarchive-3.4.2/doc/man/archive_write_new.3
vendored
Normal file
|
@ -0,0 +1,36 @@
|
|||
.TH ARCHIVE_WRITE_NEW 3 "February 2, 2012" ""
|
||||
.SH NAME
|
||||
.ad l
|
||||
\fB\%archive_write_new\fP
|
||||
\- functions for creating archives
|
||||
.SH LIBRARY
|
||||
.ad l
|
||||
Streaming Archive Library (libarchive, -larchive)
|
||||
.SH SYNOPSIS
|
||||
.ad l
|
||||
\fB#include <archive.h>\fP
|
||||
.br
|
||||
\fIstruct archive *\fP
|
||||
.br
|
||||
\fB\%archive_write_new\fP(\fI\%void\fP);
|
||||
.SH DESCRIPTION
|
||||
.ad l
|
||||
Allocates and initializes a
|
||||
Tn struct archive
|
||||
object suitable for writing a tar archive.
|
||||
.BR NULL
|
||||
is returned on error.
|
||||
.PP
|
||||
A complete description of the
|
||||
Tn struct archive
|
||||
object can be found in the overview manual page for
|
||||
\fBlibarchive\fP(3).
|
||||
.SH SEE ALSO
|
||||
.ad l
|
||||
\fBtar\fP(1),
|
||||
\fBarchive_write\fP(3),
|
||||
\fBarchive_write_set_options\fP(3),
|
||||
\fBlibarchive\fP(3),
|
||||
\fBcpio\fP(5),
|
||||
\fBmtree\fP(5),
|
||||
\fBtar\fP(5)
|
222
dependencies/libarchive-3.4.2/doc/man/archive_write_open.3
vendored
Normal file
222
dependencies/libarchive-3.4.2/doc/man/archive_write_open.3
vendored
Normal file
|
@ -0,0 +1,222 @@
|
|||
.TH ARCHIVE_WRITE_OPEN 3 "February 2, 2012" ""
|
||||
.SH NAME
|
||||
.ad l
|
||||
\fB\%archive_write_open\fP,
|
||||
\fB\%archive_write_open_fd\fP,
|
||||
\fB\%archive_write_open_FILE\fP,
|
||||
\fB\%archive_write_open_filename\fP,
|
||||
\fB\%archive_write_open_memory\fP
|
||||
\- functions for creating archives
|
||||
.SH LIBRARY
|
||||
.ad l
|
||||
Streaming Archive Library (libarchive, -larchive)
|
||||
.SH SYNOPSIS
|
||||
.ad l
|
||||
\fB#include <archive.h>\fP
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_open\fP(\fI\%struct\ archive\ *\fP, \fI\%void\ *client_data\fP, \fI\%archive_open_callback\ *\fP, \fI\%archive_write_callback\ *\fP, \fI\%archive_close_callback\ *\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_open_fd\fP(\fI\%struct\ archive\ *\fP, \fI\%int\ fd\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_open_FILE\fP(\fI\%struct\ archive\ *\fP, \fI\%FILE\ *file\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_open_filename\fP(\fI\%struct\ archive\ *\fP, \fI\%const\ char\ *filename\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_open_memory\fP(\fI\%struct\ archive\ *\fP, \fI\%void\ *buffer\fP, \fI\%size_t\ bufferSize\fP, \fI\%size_t\ *outUsed\fP);
|
||||
.SH DESCRIPTION
|
||||
.ad l
|
||||
.RS 5
|
||||
.TP
|
||||
\fB\%archive_write_open\fP()
|
||||
Freeze the settings, open the archive, and prepare for writing entries.
|
||||
This is the most generic form of this function, which accepts
|
||||
pointers to three callback functions which will be invoked by
|
||||
the compression layer to write the constructed archive.
|
||||
This does not alter the default archive padding.
|
||||
.TP
|
||||
\fB\%archive_write_open_fd\fP()
|
||||
A convenience form of
|
||||
\fB\%archive_write_open\fP()
|
||||
that accepts a file descriptor.
|
||||
The
|
||||
\fB\%archive_write_open_fd\fP()
|
||||
function is safe for use with tape drives or other
|
||||
block-oriented devices.
|
||||
.TP
|
||||
\fB\%archive_write_open_FILE\fP()
|
||||
A convenience form of
|
||||
\fB\%archive_write_open\fP()
|
||||
that accepts a
|
||||
\fIFILE *\fP
|
||||
pointer.
|
||||
Note that
|
||||
\fB\%archive_write_open_FILE\fP()
|
||||
is not safe for writing to tape drives or other devices
|
||||
that require correct blocking.
|
||||
.TP
|
||||
\fB\%archive_write_open_file\fP()
|
||||
A deprecated synonym for
|
||||
\fB\%archive_write_open_filename\fP().
|
||||
.TP
|
||||
\fB\%archive_write_open_filename\fP()
|
||||
A convenience form of
|
||||
\fB\%archive_write_open\fP()
|
||||
that accepts a filename.
|
||||
A NULL argument indicates that the output should be written to standard output;
|
||||
an argument of
|
||||
``-''
|
||||
will open a file with that name.
|
||||
If you have not invoked
|
||||
\fB\%archive_write_set_bytes_in_last_block\fP(),
|
||||
then
|
||||
\fB\%archive_write_open_filename\fP()
|
||||
will adjust the last-block padding depending on the file:
|
||||
it will enable padding when writing to standard output or
|
||||
to a character or block device node, it will disable padding otherwise.
|
||||
You can override this by manually invoking
|
||||
\fB\%archive_write_set_bytes_in_last_block\fP()
|
||||
before calling
|
||||
\fB\%archive_write_open\fP().
|
||||
The
|
||||
\fB\%archive_write_open_filename\fP()
|
||||
function is safe for use with tape drives or other
|
||||
block-oriented devices.
|
||||
.TP
|
||||
\fB\%archive_write_open_memory\fP()
|
||||
A convenience form of
|
||||
\fB\%archive_write_open\fP()
|
||||
that accepts a pointer to a block of memory that will receive
|
||||
the archive.
|
||||
The final
|
||||
\fIsize_t *\fP
|
||||
argument points to a variable that will be updated
|
||||
after each write to reflect how much of the buffer
|
||||
is currently in use.
|
||||
You should be careful to ensure that this variable
|
||||
remains allocated until after the archive is
|
||||
closed.
|
||||
This function will disable padding unless you
|
||||
have specifically set the block size.
|
||||
.RE
|
||||
More information about the
|
||||
\fIstruct\fP archive
|
||||
object and the overall design of the library can be found in the
|
||||
\fBlibarchive\fP(3)
|
||||
overview.
|
||||
.PP
|
||||
Note that the convenience forms above vary in how
|
||||
they block the output.
|
||||
See
|
||||
\fBarchive_write_blocksize\fP(3)
|
||||
if you need to control the block size used for writes
|
||||
or the end-of-file padding behavior.
|
||||
.SH CLIENT CALLBACKS
|
||||
.ad l
|
||||
To use this library, you will need to define and register
|
||||
callback functions that will be invoked to write data to the
|
||||
resulting archive.
|
||||
These functions are registered by calling
|
||||
\fB\%archive_write_open\fP():
|
||||
.RS 5
|
||||
.IP
|
||||
\fItypedef int\fP
|
||||
\fB\%archive_open_callback\fP(\fI\%struct\ archive\ *\fP, \fI\%void\ *client_data\fP)
|
||||
.RE
|
||||
.PP
|
||||
The open callback is invoked by
|
||||
\fB\%archive_write_open\fP().
|
||||
It should return
|
||||
\fBARCHIVE_OK\fP
|
||||
if the underlying file or data source is successfully
|
||||
opened.
|
||||
If the open fails, it should call
|
||||
\fB\%archive_set_error\fP()
|
||||
to register an error code and message and return
|
||||
\fBARCHIVE_FATAL\fP.
|
||||
.RS 5
|
||||
.IP
|
||||
\fItypedef la_ssize_t\fP
|
||||
\fB\%archive_write_callback\fP(\fI\%struct\ archive\ *\fP, \fI\%void\ *client_data\fP, \fI\%const\ void\ *buffer\fP, \fI\%size_t\ length\fP)
|
||||
.RE
|
||||
.PP
|
||||
The write callback is invoked whenever the library
|
||||
needs to write raw bytes to the archive.
|
||||
For correct blocking, each call to the write callback function
|
||||
should translate into a single
|
||||
\fBwrite\fP(2)
|
||||
system call.
|
||||
This is especially critical when writing archives to tape drives.
|
||||
On success, the write callback should return the
|
||||
number of bytes actually written.
|
||||
On error, the callback should invoke
|
||||
\fB\%archive_set_error\fP()
|
||||
to register an error code and message and return -1.
|
||||
.RS 5
|
||||
.IP
|
||||
\fItypedef int\fP
|
||||
\fB\%archive_close_callback\fP(\fI\%struct\ archive\ *\fP, \fI\%void\ *client_data\fP)
|
||||
.RE
|
||||
.PP
|
||||
The close callback is invoked by archive_close when
|
||||
the archive processing is complete.
|
||||
The callback should return
|
||||
\fBARCHIVE_OK\fP
|
||||
on success.
|
||||
On failure, the callback should invoke
|
||||
\fB\%archive_set_error\fP()
|
||||
to register an error code and message and
|
||||
return
|
||||
\fBARCHIVE_FATAL\fP.
|
||||
.PP
|
||||
Note that if the client-provided write callback function
|
||||
returns a non-zero value, that error will be propagated back to the caller
|
||||
through whatever API function resulted in that call, which
|
||||
may include
|
||||
\fB\%archive_write_header\fP(),
|
||||
\fB\%archive_write_data\fP(),
|
||||
\fB\%archive_write_close\fP(),
|
||||
\fB\%archive_write_finish\fP(),
|
||||
or
|
||||
\fB\%archive_write_free\fP().
|
||||
The client callback can call
|
||||
\fB\%archive_set_error\fP()
|
||||
to provide values that can then be retrieved by
|
||||
\fB\%archive_errno\fP()
|
||||
and
|
||||
\fB\%archive_error_string\fP().
|
||||
.SH RETURN VALUES
|
||||
.ad l
|
||||
These functions return
|
||||
\fBARCHIVE_OK\fP
|
||||
on success, or
|
||||
\fBARCHIVE_FATAL\fP.
|
||||
.SH ERRORS
|
||||
.ad l
|
||||
Detailed error codes and textual descriptions are available from the
|
||||
\fB\%archive_errno\fP()
|
||||
and
|
||||
\fB\%archive_error_string\fP()
|
||||
functions.
|
||||
.SH SEE ALSO
|
||||
.ad l
|
||||
\fBtar\fP(1),
|
||||
\fBarchive_write\fP(3),
|
||||
\fBarchive_write_blocksize\fP(3),
|
||||
\fBarchive_write_filter\fP(3),
|
||||
\fBarchive_write_format\fP(3),
|
||||
\fBarchive_write_new\fP(3),
|
||||
\fBarchive_write_set_options\fP(3),
|
||||
\fBlibarchive\fP(3),
|
||||
\fBcpio\fP(5),
|
||||
\fBmtree\fP(5),
|
||||
\fBtar\fP(5)
|
784
dependencies/libarchive-3.4.2/doc/man/archive_write_set_options.3
vendored
Normal file
784
dependencies/libarchive-3.4.2/doc/man/archive_write_set_options.3
vendored
Normal file
|
@ -0,0 +1,784 @@
|
|||
.TH ARCHIVE_WRITE_OPTIONS 3 "January 31, 2020" ""
|
||||
.SH NAME
|
||||
.ad l
|
||||
\fB\%archive_write_set_filter_option\fP,
|
||||
\fB\%archive_write_set_format_option\fP,
|
||||
\fB\%archive_write_set_option\fP,
|
||||
\fB\%archive_write_set_options\fP
|
||||
\- functions controlling options for writing archives
|
||||
.SH LIBRARY
|
||||
.ad l
|
||||
Streaming Archive Library (libarchive, -larchive)
|
||||
.SH SYNOPSIS
|
||||
.ad l
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_set_filter_option\fP(\fI\%struct\ archive\ *\fP, \fI\%const\ char\ *module\fP, \fI\%const\ char\ *option\fP, \fI\%const\ char\ *value\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_set_format_option\fP(\fI\%struct\ archive\ *\fP, \fI\%const\ char\ *module\fP, \fI\%const\ char\ *option\fP, \fI\%const\ char\ *value\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_set_option\fP(\fI\%struct\ archive\ *\fP, \fI\%const\ char\ *module\fP, \fI\%const\ char\ *option\fP, \fI\%const\ char\ *value\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_set_options\fP(\fI\%struct\ archive\ *\fP, \fI\%const\ char\ *options\fP);
|
||||
.SH DESCRIPTION
|
||||
.ad l
|
||||
These functions provide a way for libarchive clients to configure
|
||||
specific write modules.
|
||||
.RS 5
|
||||
.TP
|
||||
\fB\%archive_write_set_filter_option\fP(),
|
||||
\fB\%archive_write_set_format_option\fP()
|
||||
Specifies an option that will be passed to the currently-registered
|
||||
filters (including decompression filters) or format readers.
|
||||
.PP
|
||||
If
|
||||
\fIoption\fP
|
||||
and
|
||||
\fIvalue\fP
|
||||
are both
|
||||
.BR NULL,
|
||||
these functions will do nothing and
|
||||
\fBARCHIVE_OK\fP
|
||||
will be returned.
|
||||
If
|
||||
\fIoption\fP
|
||||
is
|
||||
.BR NULL
|
||||
but
|
||||
\fIvalue\fP
|
||||
is not, these functions will do nothing and
|
||||
\fBARCHIVE_FAILED\fP
|
||||
will be returned.
|
||||
.PP
|
||||
If
|
||||
\fImodule\fP
|
||||
is not
|
||||
.BR NULL,
|
||||
\fIoption\fP
|
||||
and
|
||||
\fIvalue\fP
|
||||
will be provided to the filter or reader named
|
||||
\fImodule\fP.
|
||||
The return value will be either
|
||||
\fBARCHIVE_OK\fP
|
||||
if the option was successfully handled or
|
||||
\fBARCHIVE_WARN\fP
|
||||
if the option was unrecognized by the module or could otherwise
|
||||
not be handled.
|
||||
If there is no such module,
|
||||
\fBARCHIVE_FAILED\fP
|
||||
will be returned.
|
||||
.PP
|
||||
If
|
||||
\fImodule\fP
|
||||
is
|
||||
.BR NULL,
|
||||
\fIoption\fP
|
||||
and
|
||||
\fIvalue\fP
|
||||
will be provided to every registered module.
|
||||
If any module returns
|
||||
\fBARCHIVE_FATAL\fP,
|
||||
this value will be returned immediately.
|
||||
Otherwise,
|
||||
\fBARCHIVE_OK\fP
|
||||
will be returned if any module accepts the option, and
|
||||
\fBARCHIVE_FAILED\fP
|
||||
in all other cases.
|
||||
.TP
|
||||
\fB\%archive_write_set_option\fP()
|
||||
Calls
|
||||
\fB\%archive_write_set_format_option\fP(),
|
||||
then
|
||||
\fB\%archive_write_set_filter_option\fP().
|
||||
If either function returns
|
||||
\fBARCHIVE_FATAL\fP,
|
||||
\fBARCHIVE_FATAL\fP
|
||||
will be returned
|
||||
immediately.
|
||||
Otherwise, the greater of the two values will be returned.
|
||||
.TP
|
||||
\fB\%archive_write_set_options\fP()
|
||||
\fIoptions\fP
|
||||
is a comma-separated list of options.
|
||||
If
|
||||
\fIoptions\fP
|
||||
is
|
||||
.BR NULL
|
||||
or empty,
|
||||
\fBARCHIVE_OK\fP
|
||||
will be returned immediately.
|
||||
.PP
|
||||
Individual options have one of the following forms:
|
||||
.RS 5
|
||||
.TP
|
||||
\fIoption=value\fP
|
||||
The option/value pair will be provided to every module.
|
||||
Modules that do not accept an option with this name will ignore it.
|
||||
.TP
|
||||
\fIoption\fP
|
||||
The option will be provided to every module with a value of
|
||||
``1''.
|
||||
.TP
|
||||
\fI!option\fP
|
||||
The option will be provided to every module with a NULL value.
|
||||
.TP
|
||||
\fImodule:option=value\fP, \fImodule:option\fP, \fImodule:!option\fP
|
||||
As above, but the corresponding option and value will be provided
|
||||
only to modules whose name matches
|
||||
\fImodule\fP.
|
||||
.RE
|
||||
.RE
|
||||
.SH OPTIONS
|
||||
.ad l
|
||||
.RS 5
|
||||
.TP
|
||||
Filter b64encode
|
||||
.RS 5
|
||||
.TP
|
||||
\fBmode\fP
|
||||
The value is interpreted as octal digits specifying the file mode.
|
||||
.TP
|
||||
\fBname\fP
|
||||
The value specifies the file name.
|
||||
.RE
|
||||
.TP
|
||||
Filter bzip2
|
||||
.RS 5
|
||||
.TP
|
||||
\fBcompression-level\fP
|
||||
The value is interpreted as a decimal integer specifying the
|
||||
bzip2 compression level. Supported values are from 1 to 9.
|
||||
.RE
|
||||
.TP
|
||||
Filter gzip
|
||||
.RS 5
|
||||
.TP
|
||||
\fBcompression-level\fP
|
||||
The value is interpreted as a decimal integer specifying the
|
||||
gzip compression level. Supported values are from 0 to 9.
|
||||
.TP
|
||||
\fBtimestamp\fP
|
||||
Store timestamp. This is enabled by default.
|
||||
.RE
|
||||
.TP
|
||||
Filter lrzip
|
||||
.RS 5
|
||||
.TP
|
||||
\fBcompression\fP=\fItype\fP
|
||||
Use
|
||||
\fItype\fP
|
||||
as compression method.
|
||||
Supported values are
|
||||
``bzip2'',
|
||||
``gzipi'',
|
||||
``lzo''
|
||||
(ultra fast,)
|
||||
and
|
||||
``zpaq''
|
||||
(best, extremely slow.)
|
||||
.TP
|
||||
\fBcompression-level\fP
|
||||
The value is interpreted as a decimal integer specifying the
|
||||
lrzip compression level. Supported values are from 1 to 9.
|
||||
.RE
|
||||
.TP
|
||||
Filter lz4
|
||||
.RS 5
|
||||
.TP
|
||||
\fBcompression-level\fP
|
||||
The value is interpreted as a decimal integer specifying the
|
||||
lz4 compression level. Supported values are from 0 to 9.
|
||||
.TP
|
||||
\fBstream-checksum\fP
|
||||
Enable stream checksum. This is enabled by default.
|
||||
.TP
|
||||
\fBblock-checksum\fP
|
||||
Enable block checksum. This is disabled by default.
|
||||
.TP
|
||||
\fBblock-size\fP
|
||||
The value is interpreted as a decimal integer specifying the
|
||||
lz4 compression block size. Supported values are from 4 to 7
|
||||
(default.)
|
||||
.TP
|
||||
\fBblock-dependence\fP
|
||||
Use the previous block of the block being compressed for
|
||||
a compression dictionary to improve compression ratio.
|
||||
This is disabled by default.
|
||||
.RE
|
||||
.TP
|
||||
Filter lzop
|
||||
.RS 5
|
||||
.TP
|
||||
\fBcompression-level\fP
|
||||
The value is interpreted as a decimal integer specifying the
|
||||
lzop compression level. Supported values are from 1 to 9.
|
||||
.RE
|
||||
.TP
|
||||
Filter uuencode
|
||||
.RS 5
|
||||
.TP
|
||||
\fBmode\fP
|
||||
The value is interpreted as octal digits specifying the file mode.
|
||||
.TP
|
||||
\fBname\fP
|
||||
The value specifies the file name.
|
||||
.RE
|
||||
.TP
|
||||
Filter xz
|
||||
.RS 5
|
||||
.TP
|
||||
\fBcompression-level\fP
|
||||
The value is interpreted as a decimal integer specifying the
|
||||
compression level. Supported values are from 0 to 9.
|
||||
.TP
|
||||
\fBthreads\fP
|
||||
The value is interpreted as a decimal integer specifying the
|
||||
number of threads for multi-threaded lzma compression.
|
||||
If supported, the default value is read from
|
||||
\fB\%lzma_cputhreads\fP().
|
||||
.RE
|
||||
.TP
|
||||
Filter zstd
|
||||
.RS 5
|
||||
.TP
|
||||
\fBcompression-level\fP
|
||||
The value is interpreted as a decimal integer specifying the
|
||||
compression level. Supported values are from 1 to 22.
|
||||
.RE
|
||||
.TP
|
||||
Format 7zip
|
||||
.RS 5
|
||||
.TP
|
||||
\fBcompression\fP
|
||||
The value is one of
|
||||
``store'',
|
||||
``deflate'',
|
||||
``bzip2'',
|
||||
``lzma1'',
|
||||
``lzma2''
|
||||
or
|
||||
``ppmd''
|
||||
to indicate how the following entries should be compressed.
|
||||
Note that this setting is ignored for directories, symbolic links,
|
||||
and other special entries.
|
||||
.TP
|
||||
\fBcompression-level\fP
|
||||
The value is interpreted as a decimal integer specifying the
|
||||
compression level.
|
||||
Values between 0 and 9 are supported.
|
||||
The interpretation of the compression level depends on the chosen
|
||||
compression method.
|
||||
.RE
|
||||
.TP
|
||||
Format cpio
|
||||
.RS 5
|
||||
.TP
|
||||
\fBhdrcharset\fP
|
||||
The value is used as a character set name that will be
|
||||
used when translating file names.
|
||||
.RE
|
||||
.TP
|
||||
Format gnutar
|
||||
.RS 5
|
||||
.TP
|
||||
\fBhdrcharset\fP
|
||||
The value is used as a character set name that will be
|
||||
used when translating file, group and user names.
|
||||
.RE
|
||||
.TP
|
||||
Format iso9660 - volume metadata
|
||||
These options are used to set standard ISO9660 metadata.
|
||||
.RS 5
|
||||
.TP
|
||||
\fBabstract-file\fP=\fIfilename\fP
|
||||
The file with the specified name will be identified in the ISO9660 metadata
|
||||
as holding the abstract for this volume.
|
||||
Default: none.
|
||||
.TP
|
||||
\fBapplication-id\fP=\fIfilename\fP
|
||||
The file with the specified name will be identified in the ISO9660 metadata
|
||||
as holding the application identifier for this volume.
|
||||
Default: none.
|
||||
.TP
|
||||
\fBbiblio-file\fP=\fIfilename\fP
|
||||
The file with the specified name will be identified in the ISO9660 metadata
|
||||
as holding the bibliography for this volume.
|
||||
Default: none.
|
||||
.TP
|
||||
\fBcopyright-file\fP=\fIfilename\fP
|
||||
The file with the specified name will be identified in the ISO9660 metadata
|
||||
as holding the copyright for this volume.
|
||||
Default: none.
|
||||
.TP
|
||||
\fBpublisher\fP=\fIfilename\fP
|
||||
The file with the specified name will be identified in the ISO9660 metadata
|
||||
as holding the publisher information for this volume.
|
||||
Default: none.
|
||||
.TP
|
||||
\fBvolume-id\fP=\fIstring\fP
|
||||
The specified string will be used as the Volume Identifier in the ISO9660 metadata.
|
||||
It is limited to 32 bytes.
|
||||
Default: none.
|
||||
.RE
|
||||
.TP
|
||||
Format iso9660 - boot support
|
||||
These options are used to make an ISO9660 image that can be directly
|
||||
booted on various systems.
|
||||
.RS 5
|
||||
.TP
|
||||
\fBboot\fP=\fIfilename\fP
|
||||
The file matching this name will be used as the El Torito boot image file.
|
||||
.TP
|
||||
\fBboot-catalog\fP=\fIname\fP
|
||||
The name that will be used for the El Torito boot catalog.
|
||||
Default:
|
||||
\fIboot.catalog\fP
|
||||
.TP
|
||||
\fBboot-info-table\fP
|
||||
The boot image file provided by the
|
||||
\fBboot\fP=\fIfilename\fP
|
||||
option will be edited with appropriate boot information in bytes 8 through 64.
|
||||
Default: disabled
|
||||
.TP
|
||||
\fBboot-load-seg\fP=\fIhexadecimal-number\fP
|
||||
The load segment for a no-emulation boot image.
|
||||
.TP
|
||||
\fBboot-load-size\fP=\fIdecimal-number\fP
|
||||
The number of "virtual" 512-byte sectors to be loaded from a no-emulation boot image.
|
||||
Some very old BIOSes can only load very small images, setting this
|
||||
value to 4 will often allow such BIOSes to load the first part of
|
||||
the boot image (which will then need to be intelligent enough to
|
||||
load the rest of itself).
|
||||
This should not be needed unless you are trying to support systems with very old BIOSes.
|
||||
This defaults to the full size of the image.
|
||||
.TP
|
||||
\fBboot-type\fP=\fIvalue\fP
|
||||
Specifies the boot semantics used by the El Torito boot image:
|
||||
If the
|
||||
\fIvalue\fP
|
||||
is
|
||||
\fBfd\fP,
|
||||
then the boot image is assumed to be a bootable floppy image.
|
||||
If the
|
||||
\fIvalue\fP
|
||||
is
|
||||
\fBhd\fP,
|
||||
then the boot image is assumed to be a bootable hard disk image.
|
||||
If the
|
||||
\fIvalue\fP
|
||||
is
|
||||
\fBno-emulation\fP,
|
||||
the boot image is used without floppy or hard disk emulation.
|
||||
If the boot image is exactly 1.2MB, 1.44MB, or 2.88MB, then
|
||||
the default is
|
||||
\fBfd\fP,
|
||||
otherwise the default is
|
||||
\fBno-emulation\fP.
|
||||
.RE
|
||||
.TP
|
||||
Format iso9660 - filename and size extensions
|
||||
Various extensions to the base ISO9660 format.
|
||||
.RS 5
|
||||
.TP
|
||||
\fBallow-ldots\fP
|
||||
If enabled, allows filenames to begin with a leading period.
|
||||
If disabled, filenames that begin with a leading period will have
|
||||
that period replaced by an underscore character in the standard ISO9660
|
||||
namespace.
|
||||
This does not impact names stored in the Rockridge or Joliet extension area.
|
||||
Default: disabled.
|
||||
.TP
|
||||
\fBallow-lowercase\fP
|
||||
If enabled, allows filenames to contain lowercase characters.
|
||||
If disabled, filenames will be forced to uppercase.
|
||||
This does not impact names stored in the Rockridge or Joliet extension area.
|
||||
Default: disabled.
|
||||
.TP
|
||||
\fBallow-multidot\fP
|
||||
If enabled, allows filenames to contain multiple period characters, in violation of the ISO9660 specification.
|
||||
If disabled, additional periods will be converted to underscore characters.
|
||||
This does not impact names stored in the Rockridge or Joliet extension area.
|
||||
Default: disabled.
|
||||
.TP
|
||||
\fBallow-period\fP
|
||||
If enabled, allows filenames to contain trailing period characters, in violation of the ISO9660 specification.
|
||||
If disabled, trailing periods will be converted to underscore characters.
|
||||
This does not impact names stored in the Rockridge or Joliet extension area.
|
||||
Default: disabled.
|
||||
.TP
|
||||
\fBallow-pvd-lowercase\fP
|
||||
If enabled, the Primary Volume Descriptor may contain lowercase ASCII characters, in violation of the ISO9660 specification.
|
||||
If disabled, characters will be converted to uppercase ASCII.
|
||||
Default: disabled.
|
||||
.TP
|
||||
\fBallow-sharp-tilde\fP
|
||||
If enabled, sharp and tilde characters will be permitted in filenames, in violation if the ISO9660 specification.
|
||||
If disabled, such characters will be converted to underscore characters.
|
||||
Default: disabled.
|
||||
.TP
|
||||
\fBallow-vernum\fP
|
||||
If enabled, version numbers will be included with files.
|
||||
If disabled, version numbers will be suppressed, in violation of the ISO9660 standard.
|
||||
This does not impact names stored in the Rockridge or Joliet extension area.
|
||||
Default: enabled.
|
||||
.TP
|
||||
\fBiso-level\fP
|
||||
This enables support for file size and file name extensions in the
|
||||
core ISO9660 area.
|
||||
The name extensions specified here do not affect the names stored in the Rockridge or Joliet extension areas.
|
||||
.RS 5
|
||||
.TP
|
||||
\fBiso-level=1\fP
|
||||
The most compliant form of ISO9660 image.
|
||||
Filenames are limited to 8.3 uppercase format,
|
||||
directory names are limited to 8 uppercase characters,
|
||||
files are limited to 4 GiB,
|
||||
the complete ISO9660 image cannot exceed 4 GiB.
|
||||
.TP
|
||||
\fBiso-level=2\fP
|
||||
Filenames are limited to 30 uppercase characters with a 30-character extension,
|
||||
directory names are limited to 30 characters,
|
||||
files are limited to 4 GiB.
|
||||
.TP
|
||||
\fBiso-level=3\fP
|
||||
As with
|
||||
\fBiso-level=2\fP,
|
||||
except that files may exceed 4 GiB.
|
||||
.TP
|
||||
\fBiso-level=4\fP
|
||||
As with
|
||||
\fBiso-level=3\fP,
|
||||
except that filenames may be up to 193 characters
|
||||
and may include arbitrary 8-bit characters.
|
||||
.RE
|
||||
.TP
|
||||
\fBjoliet\fP
|
||||
Microsoft's Joliet extensions store a completely separate set of directory information about each file.
|
||||
In particular, this information includes Unicode filenames of up to 255 characters.
|
||||
Default: enabled.
|
||||
.TP
|
||||
\fBlimit-depth\fP
|
||||
If enabled, libarchive will use directory relocation records to ensure that
|
||||
no pathname exceeds the ISO9660 limit of 8 directory levels.
|
||||
If disabled, no relocation will occur.
|
||||
Default: enabled.
|
||||
.TP
|
||||
\fBlimit-dirs\fP
|
||||
If enabled, libarchive will cause an error if there are more than
|
||||
65536 directories.
|
||||
If disabled, there is no limit on the number of directories.
|
||||
Default: enabled
|
||||
.TP
|
||||
\fBpad\fP
|
||||
If enabled, 300 kiB of zero bytes will be appended to the end of the archive.
|
||||
Default: enabled
|
||||
.TP
|
||||
\fBrelaxed-filenames\fP
|
||||
If enabled, all 7-bit ASCII characters are permitted in filenames
|
||||
(except lowercase characters unless
|
||||
\fBallow-lowercase\fP
|
||||
is also specified).
|
||||
This violates ISO9660 standards.
|
||||
This does not impact names stored in the Rockridge or Joliet extension area.
|
||||
Default: disabled.
|
||||
.TP
|
||||
\fBrockridge\fP
|
||||
The Rockridge extensions store an additional set of POSIX-style file
|
||||
information with each file, including mtime, atime, ctime, permissions,
|
||||
and long filenames with arbitrary 8-bit characters.
|
||||
These extensions also support symbolic links and other POSIX file types.
|
||||
Default: enabled.
|
||||
.RE
|
||||
.TP
|
||||
Format iso9660 - zisofs support
|
||||
The zisofs extensions permit each file to be independently compressed
|
||||
using a gzip-compatible compression.
|
||||
This can provide significant size savings, but requires the reading
|
||||
system to have support for these extensions.
|
||||
These extensions are disabled by default.
|
||||
.RS 5
|
||||
.TP
|
||||
\fBcompression-level\fP=number
|
||||
The compression level used by the deflate compressor.
|
||||
Ranges from 0 (least effort) to 9 (most effort).
|
||||
Default: 6
|
||||
.TP
|
||||
\fBzisofs\fP
|
||||
Synonym for
|
||||
\fBzisofs=direct\fP.
|
||||
.TP
|
||||
\fBzisofs=direct\fP
|
||||
Compress each file in the archive.
|
||||
Unlike
|
||||
\fBzisofs=indirect\fP,
|
||||
this is handled entirely within libarchive and does not require a
|
||||
separate utility.
|
||||
For best results, libarchive tests each file and will store
|
||||
the file uncompressed if the compression does not actually save any space.
|
||||
In particular, files under 2k will never be compressed.
|
||||
Note that boot image files are never compressed.
|
||||
.TP
|
||||
\fBzisofs=indirect\fP
|
||||
Recognizes files that have already been compressed with the
|
||||
\fBmkzftree\fP
|
||||
utility and sets up the necessary file metadata so that
|
||||
readers will correctly identify these as zisofs-compressed files.
|
||||
.TP
|
||||
\fBzisofs-exclude\fP=\fIfilename\fP
|
||||
Specifies a filename that should not be compressed when using
|
||||
\fBzisofs=direct\fP.
|
||||
This option can be provided multiple times to suppress compression
|
||||
on many files.
|
||||
.RE
|
||||
.TP
|
||||
Format mtree
|
||||
.RS 5
|
||||
.TP
|
||||
\fBcksum\fP, \fBdevice\fP, \fBflags\fP, \fBgid\fP, \fBgname\fP, \fBindent\fP, \fBlink\fP, \fBmd5\fP, \fBmode\fP, \fBnlink\fP, \fBrmd160\fP, \fBsha1\fP, \fBsha256\fP, \fBsha384\fP, \fBsha512\fP, \fBsize\fP, \fBtime\fP, \fBuid\fP, \fBuname\fP
|
||||
Enable a particular keyword in the mtree output.
|
||||
Prefix with an exclamation mark to disable the corresponding keyword.
|
||||
The default is equivalent to
|
||||
``device, flags, gid, gname, link, mode, nlink, size, time, type, uid, uname''.
|
||||
.TP
|
||||
\fBall\fP
|
||||
Enables all of the above keywords.
|
||||
.TP
|
||||
\fBuse-set\fP
|
||||
Enables generation of
|
||||
\fB/set\fP
|
||||
lines that specify default values for the following files and/or directories.
|
||||
.TP
|
||||
\fBindent\fP
|
||||
XXX needs explanation XXX
|
||||
.RE
|
||||
.TP
|
||||
Format newc
|
||||
.RS 5
|
||||
.TP
|
||||
\fBhdrcharset\fP
|
||||
The value is used as a character set name that will be
|
||||
used when translating file names.
|
||||
.RE
|
||||
.TP
|
||||
Format pax
|
||||
.RS 5
|
||||
.TP
|
||||
\fBhdrcharset\fP
|
||||
The value is used as a character set name that will be
|
||||
used when translating file, group and user names.
|
||||
The value is one of
|
||||
``BINARY''
|
||||
or
|
||||
``UTF-8''.
|
||||
With
|
||||
``BINARY''
|
||||
there is no character conversion, with
|
||||
``UTF-8''
|
||||
names are converted to UTF-8.
|
||||
.TP
|
||||
\fBxattrheader\fP
|
||||
When storing extended attributes, this option configures which
|
||||
headers should be written. The value is one of
|
||||
``all'',
|
||||
``LIBARCHIVE'',
|
||||
or
|
||||
``SCHILY''.
|
||||
By default, both
|
||||
``LIBARCHIVE.xattr''
|
||||
and
|
||||
``SCHILY.xattr''
|
||||
headers are written.
|
||||
.RE
|
||||
.TP
|
||||
Format ustar
|
||||
.RS 5
|
||||
.TP
|
||||
\fBhdrcharset\fP
|
||||
The value is used as a character set name that will be
|
||||
used when translating file, group and user names.
|
||||
.RE
|
||||
.TP
|
||||
Format v7tar
|
||||
.RS 5
|
||||
.TP
|
||||
\fBhdrcharset\fP
|
||||
The value is used as a character set name that will be
|
||||
used when translating file, group and user names.
|
||||
.RE
|
||||
.TP
|
||||
Format warc
|
||||
.RS 5
|
||||
.TP
|
||||
\fBomit-warcinfo\fP
|
||||
Set to
|
||||
``true''
|
||||
to disable output of the warcinfo record.
|
||||
.RE
|
||||
.TP
|
||||
Format xar
|
||||
.RS 5
|
||||
.TP
|
||||
\fBchecksum\fP=\fItype\fP
|
||||
Use
|
||||
\fItype\fP
|
||||
as file checksum method.
|
||||
Supported values are
|
||||
``none'',
|
||||
``md5'',
|
||||
and
|
||||
``sha1''
|
||||
(default.)
|
||||
.TP
|
||||
\fBcompression\fP=\fItype\fP
|
||||
Use
|
||||
\fItype\fP
|
||||
as compression method.
|
||||
Supported values are
|
||||
``none'',
|
||||
``bzip2'',
|
||||
``gzip''
|
||||
(default,)
|
||||
``lzma''
|
||||
and
|
||||
``xz''.
|
||||
.TP
|
||||
\fBcompression_level\fP
|
||||
The value is a decimal integer from 1 to 9 specifying the compression level.
|
||||
.TP
|
||||
\fBtoc-checksum\fP=\fItype\fP
|
||||
Use
|
||||
\fItype\fP
|
||||
as table of contents checksum method.
|
||||
Supported values are
|
||||
``none'',
|
||||
``md5''
|
||||
and
|
||||
``sha1''
|
||||
(default.)
|
||||
.RE
|
||||
.TP
|
||||
Format zip
|
||||
.RS 5
|
||||
.TP
|
||||
\fBcompression\fP
|
||||
The value is either
|
||||
``store''
|
||||
or
|
||||
``deflate''
|
||||
to indicate how the following entries should be compressed.
|
||||
Note that this setting is ignored for directories, symbolic links,
|
||||
and other special entries.
|
||||
.TP
|
||||
\fBcompression-level\fP
|
||||
The value is interpreted as a decimal integer specifying the
|
||||
compression level.
|
||||
Values between 0 and 9 are supported.
|
||||
A compression level of 0 switches the compression method to
|
||||
``store'',
|
||||
other values will enable
|
||||
``deflate''
|
||||
compression with the given level.
|
||||
.TP
|
||||
\fBencryption\fP
|
||||
Enable encryption using traditional zip encryption.
|
||||
.TP
|
||||
\fBencryption\fP=\fItype\fP
|
||||
Use
|
||||
\fItype\fP
|
||||
as encryption type.
|
||||
Supported values are
|
||||
``zipcrypt''
|
||||
(traditional zip encryption,)
|
||||
``aes128''
|
||||
(WinZip AES-128 encryption)
|
||||
and
|
||||
``aes256''
|
||||
(WinZip AES-256 encryption.)
|
||||
.TP
|
||||
\fBexperimental\fP
|
||||
This boolean option enables or disables experimental Zip features
|
||||
that may not be compatible with other Zip implementations.
|
||||
.TP
|
||||
\fBfakecrc32\fP
|
||||
This boolean option disables CRC calculations.
|
||||
All CRC fields are set to zero.
|
||||
It should not be used except for testing purposes.
|
||||
.TP
|
||||
\fBhdrcharset\fP
|
||||
The value is used as a character set name that will be
|
||||
used when translating file names.
|
||||
.TP
|
||||
\fBzip64\fP
|
||||
Zip64 extensions provide additional file size information
|
||||
for entries larger than 4 GiB.
|
||||
They also provide extended file offset and archive size information
|
||||
when archives exceed 4 GiB.
|
||||
By default, the Zip writer selectively enables these extensions only as needed.
|
||||
In particular, if the file size is unknown, the Zip writer will
|
||||
include Zip64 extensions to guard against the possibility that the
|
||||
file might be larger than 4 GiB.
|
||||
.PP
|
||||
Setting this boolean option will force the writer to use Zip64 extensions
|
||||
even for small files that would not otherwise require them.
|
||||
This is primarily useful for testing.
|
||||
.PP
|
||||
Disabling this option with
|
||||
\fB!zip64\fP
|
||||
will force the Zip writer to avoid Zip64 extensions:
|
||||
It will reject files with size greater than 4 GiB,
|
||||
it will reject any new entries once the total archive size reaches 4 GiB,
|
||||
and it will not use Zip64 extensions for files with unknown size.
|
||||
In particular, this can improve compatibility when generating archives
|
||||
where the entry sizes are not known in advance.
|
||||
.RE
|
||||
.RE
|
||||
.SH EXAMPLES
|
||||
.ad l
|
||||
The following example creates an archive write handle to
|
||||
create a gzip-compressed ISO9660 format image.
|
||||
The two options here specify that the ISO9660 archive will use
|
||||
\fIkernel.img\fP
|
||||
as the boot image for El Torito booting, and that the gzip
|
||||
compressor should use the maximum compression level.
|
||||
.RS 4
|
||||
.nf
|
||||
a = archive_write_new();
|
||||
archive_write_add_filter_gzip(a);
|
||||
archive_write_set_format_iso9660(a);
|
||||
archive_write_set_options(a, "boot=kernel.img,compression=9");
|
||||
archive_write_open_filename(a, filename, blocksize);
|
||||
.RE
|
||||
.SH ERRORS
|
||||
.ad l
|
||||
More detailed error codes and textual descriptions are available from the
|
||||
\fB\%archive_errno\fP()
|
||||
and
|
||||
\fB\%archive_error_string\fP()
|
||||
functions.
|
||||
.SH SEE ALSO
|
||||
.ad l
|
||||
\fBtar\fP(1),
|
||||
\fBarchive_read_set_options\fP(3),
|
||||
\fBarchive_write\fP(3),
|
||||
\fBlibarchive\fP(3)
|
||||
.SH HISTORY
|
||||
.ad l
|
||||
The
|
||||
\fB\%libarchive\fP
|
||||
library first appeared in
|
||||
FreeBSD 5.3.
|
||||
.SH AUTHORS
|
||||
.ad l
|
||||
-nosplit
|
||||
The options support for libarchive was originally implemented by
|
||||
Michihiro NAKAJIMA.
|
||||
.SH BUGS
|
||||
.ad l
|
49
dependencies/libarchive-3.4.2/doc/man/archive_write_set_passphrase.3
vendored
Normal file
49
dependencies/libarchive-3.4.2/doc/man/archive_write_set_passphrase.3
vendored
Normal file
|
@ -0,0 +1,49 @@
|
|||
.TH ARCHIVE_WRITE_SET_PASSPHRASE 3 "September 21, 2014" ""
|
||||
.SH NAME
|
||||
.ad l
|
||||
\fB\%archive_write_set_passphrase\fP,
|
||||
\fB\%archive_write_set_passphrase_callback\fP
|
||||
\- functions for writing encrypted archives
|
||||
.SH LIBRARY
|
||||
.ad l
|
||||
Streaming Archive Library (libarchive, -larchive)
|
||||
.SH SYNOPSIS
|
||||
.ad l
|
||||
\fB#include <archive.h>\fP
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_set_passphrase\fP(\fI\%struct\ archive\ *\fP, \fI\%const\ char\ *passphrase\fP);
|
||||
.br
|
||||
\fIint\fP
|
||||
.br
|
||||
\fB\%archive_write_set_passphrase_callback\fP(\fI\%struct\ archive\ *\fP, \fI\%void\ *client_data\fP, \fI\%archive_passphrase_callback\ *\fP);
|
||||
.SH DESCRIPTION
|
||||
.ad l
|
||||
.RS 5
|
||||
.TP
|
||||
\fB\%archive_write_set_passphrase\fP()
|
||||
Set a passphrase for writing an encrypted archive.
|
||||
If
|
||||
\fIpassphrase\fP
|
||||
is
|
||||
.BR NULL
|
||||
or empty, this function will do nothing and
|
||||
\fBARCHIVE_FAILED\fP
|
||||
will be returned.
|
||||
Otherwise,
|
||||
\fBARCHIVE_OK\fP
|
||||
will be returned.
|
||||
.TP
|
||||
\fB\%archive_write_set_passphrase_callback\fP()
|
||||
Register a callback function that will be invoked to get a passphrase
|
||||
for encryption if the passphrase was not set by the
|
||||
\fB\%archive_write_set_passphrase\fP()
|
||||
function.
|
||||
.RE
|
||||
.SH SEE ALSO
|
||||
.ad l
|
||||
\fBtar\fP(1),
|
||||
\fBarchive_write\fP(3),
|
||||
\fBarchive_write_set_options\fP(3),
|
||||
\fBlibarchive\fP(3)
|
481
dependencies/libarchive-3.4.2/doc/man/bsdcpio.1
vendored
Normal file
481
dependencies/libarchive-3.4.2/doc/man/bsdcpio.1
vendored
Normal file
|
@ -0,0 +1,481 @@
|
|||
.TH CPIO 1 "September 16, 2014" ""
|
||||
.SH NAME
|
||||
.ad l
|
||||
\fB\%cpio\fP
|
||||
\- copy files to and from archives
|
||||
.SH SYNOPSIS
|
||||
.ad l
|
||||
.br
|
||||
\fB\%cpio\fP
|
||||
\fB\-i\fP
|
||||
[\fIoptions\fP]
|
||||
[\fIpattern\fP ...]
|
||||
[\fI<\fP archive]
|
||||
.br
|
||||
\fB\%cpio\fP
|
||||
\fB\-o\fP
|
||||
[\fIoptions\fP]
|
||||
\fI<\fP name-list
|
||||
[\fI>\fP archive]
|
||||
.br
|
||||
\fB\%cpio\fP
|
||||
\fB\-p\fP
|
||||
[\fIoptions\fP]
|
||||
\fIdest-dir\fP
|
||||
\fI<\fP name-list
|
||||
.SH DESCRIPTION
|
||||
.ad l
|
||||
\fB\%cpio\fP
|
||||
copies files between archives and directories.
|
||||
This implementation can extract from tar, pax, cpio, zip, jar, ar,
|
||||
and ISO 9660 cdrom images and can create tar, pax, cpio, ar,
|
||||
and shar archives.
|
||||
.PP
|
||||
The first option to
|
||||
\fB\%cpio\fP
|
||||
is a mode indicator from the following list:
|
||||
.RS 5
|
||||
.TP
|
||||
\fB\-i\fP
|
||||
Input.
|
||||
Read an archive from standard input (unless overridden) and extract the
|
||||
contents to disk or (if the
|
||||
\fB\-t\fP
|
||||
option is specified)
|
||||
list the contents to standard output.
|
||||
If one or more file patterns are specified, only files matching
|
||||
one of the patterns will be extracted.
|
||||
.TP
|
||||
\fB\-o\fP
|
||||
Output.
|
||||
Read a list of filenames from standard input and produce a new archive
|
||||
on standard output (unless overridden) containing the specified items.
|
||||
.TP
|
||||
\fB\-p\fP
|
||||
Pass-through.
|
||||
Read a list of filenames from standard input and copy the files to the
|
||||
specified directory.
|
||||
.RE
|
||||
.SH OPTIONS
|
||||
.ad l
|
||||
Unless specifically stated otherwise, options are applicable in
|
||||
all operating modes.
|
||||
.RS 5
|
||||
.TP
|
||||
\fB\-0\fP, \fB\-Fl\fP null
|
||||
Read filenames separated by NUL characters instead of newlines.
|
||||
This is necessary if any of the filenames being read might contain newlines.
|
||||
.TP
|
||||
\fB\-A\fP
|
||||
(o mode only)
|
||||
Append to the specified archive.
|
||||
(Not yet implemented.)
|
||||
.TP
|
||||
\fB\-a\fP
|
||||
(o and p modes)
|
||||
Reset access times on files after they are read.
|
||||
.TP
|
||||
\fB\-B\fP
|
||||
(o mode only)
|
||||
Block output to records of 5120 bytes.
|
||||
.TP
|
||||
\fB\-C\fP \fIsize\fP
|
||||
(o mode only)
|
||||
Block output to records of
|
||||
\fIsize\fP
|
||||
bytes.
|
||||
.TP
|
||||
\fB\-c\fP
|
||||
(o mode only)
|
||||
Use the old POSIX portable character format.
|
||||
Equivalent to
|
||||
\fB\-Fl\fP format \fIodc\fP.
|
||||
.TP
|
||||
\fB\-d\fP, \fB\-Fl\fP make-directories
|
||||
(i and p modes)
|
||||
Create directories as necessary.
|
||||
.TP
|
||||
\fB\-E\fP \fIfile\fP
|
||||
(i mode only)
|
||||
Read list of file name patterns from
|
||||
\fIfile\fP
|
||||
to list and extract.
|
||||
.TP
|
||||
\fB\-F\fP \fIfile\fP, \fB\-Fl\fP file \fIfile\fP
|
||||
Read archive from or write archive to
|
||||
\fIfile\fP.
|
||||
.TP
|
||||
\fB\-f\fP \fIpattern\fP
|
||||
(i mode only)
|
||||
Ignore files that match
|
||||
\fIpattern\fP.
|
||||
.TP
|
||||
\fB\-H\fP \fIformat\fP, \fB\-Fl\fP format \fIformat\fP
|
||||
(o mode only)
|
||||
Produce the output archive in the specified format.
|
||||
Supported formats include:
|
||||
.PP
|
||||
.RS 5
|
||||
.TP
|
||||
\fIcpio\fP
|
||||
Synonym for
|
||||
\fIodc\fP.
|
||||
.TP
|
||||
\fInewc\fP
|
||||
The SVR4 portable cpio format.
|
||||
.TP
|
||||
\fIodc\fP
|
||||
The old POSIX.1 portable octet-oriented cpio format.
|
||||
.TP
|
||||
\fIpax\fP
|
||||
The POSIX.1 pax format, an extension of the ustar format.
|
||||
.TP
|
||||
\fIustar\fP
|
||||
The POSIX.1 tar format.
|
||||
.RE
|
||||
.PP
|
||||
The default format is
|
||||
\fIodc\fP.
|
||||
See
|
||||
\fBlibarchive-formats\fP(5)
|
||||
for more complete information about the
|
||||
formats currently supported by the underlying
|
||||
\fBlibarchive\fP(3)
|
||||
library.
|
||||
.TP
|
||||
\fB\-h\fP, \fB\-Fl\fP help
|
||||
Print usage information.
|
||||
.TP
|
||||
\fB\-I\fP \fIfile\fP
|
||||
Read archive from
|
||||
\fIfile\fP.
|
||||
.TP
|
||||
\fB\-i\fP, \fB\-Fl\fP extract
|
||||
Input mode.
|
||||
See above for description.
|
||||
.TP
|
||||
\fB\-Fl\fP insecure
|
||||
(i and p mode only)
|
||||
Disable security checks during extraction or copying.
|
||||
This allows extraction via symbolic links, absolute paths,
|
||||
and path names containing
|
||||
Sq ..
|
||||
in the name.
|
||||
.TP
|
||||
\fB\-J\fP, \fB\-Fl\fP xz
|
||||
(o mode only)
|
||||
Compress the file with xz-compatible compression before writing it.
|
||||
In input mode, this option is ignored; xz compression is recognized
|
||||
automatically on input.
|
||||
.TP
|
||||
\fB\-j\fP
|
||||
Synonym for
|
||||
\fB\-y\fP.
|
||||
.TP
|
||||
\fB\-L\fP
|
||||
(o and p modes)
|
||||
All symbolic links will be followed.
|
||||
Normally, symbolic links are archived and copied as symbolic links.
|
||||
With this option, the target of the link will be archived or copied instead.
|
||||
.TP
|
||||
\fB\-l\fP, \fB\-Fl\fP link
|
||||
(p mode only)
|
||||
Create links from the target directory to the original files,
|
||||
instead of copying.
|
||||
.TP
|
||||
\fB\-Fl\fP lrzip
|
||||
(o mode only)
|
||||
Compress the resulting archive with
|
||||
\fBlrzip\fP(1).
|
||||
In input mode, this option is ignored.
|
||||
.TP
|
||||
\fB\-Fl\fP lz4
|
||||
(o mode only)
|
||||
Compress the archive with lz4-compatible compression before writing it.
|
||||
In input mode, this option is ignored; lz4 compression is recognized
|
||||
automatically on input.
|
||||
.TP
|
||||
\fB\-Fl\fP zstd
|
||||
(o mode only)
|
||||
Compress the archive with zstd-compatible compression before writing it.
|
||||
In input mode, this option is ignored; zstd compression is recognized
|
||||
automatically on input.
|
||||
.TP
|
||||
\fB\-Fl\fP lzma
|
||||
(o mode only)
|
||||
Compress the file with lzma-compatible compression before writing it.
|
||||
In input mode, this option is ignored; lzma compression is recognized
|
||||
automatically on input.
|
||||
.TP
|
||||
\fB\-Fl\fP lzop
|
||||
(o mode only)
|
||||
Compress the resulting archive with
|
||||
\fBlzop\fP(1).
|
||||
In input mode, this option is ignored.
|
||||
.TP
|
||||
\fB\-Fl\fP passphrase \fIpassphrase\fP
|
||||
The
|
||||
\fIpassphrase\fP
|
||||
is used to extract or create an encrypted archive.
|
||||
Currently, zip is only a format that
|
||||
\fB\%cpio\fP
|
||||
can handle encrypted archives.
|
||||
You shouldn't use this option unless you realize how insecure
|
||||
use of this option is.
|
||||
.TP
|
||||
\fB\-m\fP, \fB\-Fl\fP preserve-modification-time
|
||||
(i and p modes)
|
||||
Set file modification time on created files to match
|
||||
those in the source.
|
||||
.TP
|
||||
\fB\-n\fP, \fB\-Fl\fP numeric-uid-gid
|
||||
(i mode, only with
|
||||
\fB\-t\fP)
|
||||
Display numeric uid and gid.
|
||||
By default,
|
||||
\fB\%cpio\fP
|
||||
displays the user and group names when they are provided in the
|
||||
archive, or looks up the user and group names in the system
|
||||
password database.
|
||||
.TP
|
||||
\fB\-Fl\fP no-preserve-owner
|
||||
(i mode only)
|
||||
Do not attempt to restore file ownership.
|
||||
This is the default when run by non-root users.
|
||||
.TP
|
||||
\fB\-O\fP \fIfile\fP
|
||||
Write archive to
|
||||
\fIfile\fP.
|
||||
.TP
|
||||
\fB\-o\fP, \fB\-Fl\fP create
|
||||
Output mode.
|
||||
See above for description.
|
||||
.TP
|
||||
\fB\-p\fP, \fB\-Fl\fP pass-through
|
||||
Pass-through mode.
|
||||
See above for description.
|
||||
.TP
|
||||
\fB\-Fl\fP preserve-owner
|
||||
(i mode only)
|
||||
Restore file ownership.
|
||||
This is the default when run by the root user.
|
||||
.TP
|
||||
\fB\-Fl\fP quiet
|
||||
Suppress unnecessary messages.
|
||||
.TP
|
||||
\fB\-R\fP [user] [:] [group], \fB\-Fl\fP owner [user] [:] [group]
|
||||
Set the owner and/or group on files in the output.
|
||||
If group is specified with no user
|
||||
(for example,
|
||||
\fB\-R\fP \fI:wheel\fP)
|
||||
then the group will be set but not the user.
|
||||
If the user is specified with a trailing colon and no group
|
||||
(for example,
|
||||
\fB\-R\fP \fIroot:\fP)
|
||||
then the group will be set to the user's default group.
|
||||
If the user is specified with no trailing colon, then
|
||||
the user will be set but not the group.
|
||||
In
|
||||
\fB\-i\fP
|
||||
and
|
||||
\fB\-p\fP
|
||||
modes, this option can only be used by the super-user.
|
||||
(For compatibility, a period can be used in place of the colon.)
|
||||
.TP
|
||||
\fB\-r\fP
|
||||
(All modes.)
|
||||
Rename files interactively.
|
||||
For each file, a prompt is written to
|
||||
\fI/dev/tty\fP
|
||||
containing the name of the file and a line is read from
|
||||
\fI/dev/tty\fP.
|
||||
If the line read is blank, the file is skipped.
|
||||
If the line contains a single period, the file is processed normally.
|
||||
Otherwise, the line is taken to be the new name of the file.
|
||||
.TP
|
||||
\fB\-t\fP, \fB\-Fl\fP list
|
||||
(i mode only)
|
||||
List the contents of the archive to stdout;
|
||||
do not restore the contents to disk.
|
||||
.TP
|
||||
\fB\-u\fP, \fB\-Fl\fP unconditional
|
||||
(i and p modes)
|
||||
Unconditionally overwrite existing files.
|
||||
Ordinarily, an older file will not overwrite a newer file on disk.
|
||||
.TP
|
||||
\fB\-V\fP, \fB\-Fl\fP dot
|
||||
Print a dot to stderr for each file as it is processed.
|
||||
Superseded by
|
||||
\fB\-v\fP.
|
||||
.TP
|
||||
\fB\-v\fP, \fB\-Fl\fP verbose
|
||||
Print the name of each file to stderr as it is processed.
|
||||
With
|
||||
\fB\-t\fP,
|
||||
provide a detailed listing of each file.
|
||||
.TP
|
||||
\fB\-Fl\fP version
|
||||
Print the program version information and exit.
|
||||
.TP
|
||||
\fB\-y\fP
|
||||
(o mode only)
|
||||
Compress the archive with bzip2-compatible compression before writing it.
|
||||
In input mode, this option is ignored;
|
||||
bzip2 compression is recognized automatically on input.
|
||||
.TP
|
||||
\fB\-Z\fP
|
||||
(o mode only)
|
||||
Compress the archive with compress-compatible compression before writing it.
|
||||
In input mode, this option is ignored;
|
||||
compression is recognized automatically on input.
|
||||
.TP
|
||||
\fB\-z\fP
|
||||
(o mode only)
|
||||
Compress the archive with gzip-compatible compression before writing it.
|
||||
In input mode, this option is ignored;
|
||||
gzip compression is recognized automatically on input.
|
||||
.RE
|
||||
.SH EXIT STATUS
|
||||
.ad l
|
||||
The \fBcpio\fP utility exits 0 on success, and >0 if an error occurs.
|
||||
.SH ENVIRONMENT
|
||||
.ad l
|
||||
The following environment variables affect the execution of
|
||||
\fB\%cpio\fP:
|
||||
.RS 5
|
||||
.TP
|
||||
.B LANG
|
||||
The locale to use.
|
||||
See
|
||||
\fBenviron\fP(7)
|
||||
for more information.
|
||||
.TP
|
||||
.B TZ
|
||||
The timezone to use when displaying dates.
|
||||
See
|
||||
\fBenviron\fP(7)
|
||||
for more information.
|
||||
.RE
|
||||
.SH EXAMPLES
|
||||
.ad l
|
||||
The
|
||||
\fB\%cpio\fP
|
||||
command is traditionally used to copy file hierarchies in conjunction
|
||||
with the
|
||||
\fBfind\fP(1)
|
||||
command.
|
||||
The first example here simply copies all files from
|
||||
\fIsrc\fP
|
||||
to
|
||||
\fIdest\fP:
|
||||
.RS 4
|
||||
\fB\%find\fP \fIsrc\fP | \fB\%cpio\fP \fB\-pmud\fP \fIdest\fP
|
||||
.RE
|
||||
.PP
|
||||
By carefully selecting options to the
|
||||
\fBfind\fP(1)
|
||||
command and combining it with other standard utilities,
|
||||
it is possible to exercise very fine control over which files are copied.
|
||||
This next example copies files from
|
||||
\fIsrc\fP
|
||||
to
|
||||
\fIdest\fP
|
||||
that are more than 2 days old and whose names match a particular pattern:
|
||||
.RS 4
|
||||
\fB\%find\fP \fIsrc\fP \fB\-mtime\fP \fI+2\fP | \fB\%grep\fP foo[bar] | \fB\%cpio\fP \fB\-pdmu\fP \fIdest\fP
|
||||
.RE
|
||||
.PP
|
||||
This example copies files from
|
||||
\fIsrc\fP
|
||||
to
|
||||
\fIdest\fP
|
||||
that are more than 2 days old and which contain the word
|
||||
``foobar'':
|
||||
.RS 4
|
||||
\fB\%find\fP \fIsrc\fP \fB\-mtime\fP \fI+2\fP | \fB\%xargs\fP \fB\%grep\fP -l foobar | \fB\%cpio\fP \fB\-pdmu\fP \fIdest\fP
|
||||
.RE
|
||||
.SH COMPATIBILITY
|
||||
.ad l
|
||||
The mode options i, o, and p and the options
|
||||
a, B, c, d, f, l, m, r, t, u, and v comply with SUSv2.
|
||||
.PP
|
||||
The old POSIX.1 standard specified that only
|
||||
\fB\-i\fP,
|
||||
\fB\-o\fP,
|
||||
and
|
||||
\fB\-p\fP
|
||||
were interpreted as command-line options.
|
||||
Each took a single argument of a list of modifier
|
||||
characters.
|
||||
For example, the standard syntax allows
|
||||
\fB\-imu\fP
|
||||
but does not support
|
||||
\fB\-miu\fP
|
||||
or
|
||||
\fB\-i\fP \fB\-m\fP \fB\-u\fP,
|
||||
since
|
||||
\fIm\fP
|
||||
and
|
||||
\fIu\fP
|
||||
are only modifiers to
|
||||
\fB\-i\fP,
|
||||
they are not command-line options in their own right.
|
||||
The syntax supported by this implementation is backwards-compatible
|
||||
with the standard.
|
||||
For best compatibility, scripts should limit themselves to the
|
||||
standard syntax.
|
||||
.SH SEE ALSO
|
||||
.ad l
|
||||
\fBbzip2\fP(1),
|
||||
\fBgzip\fP(1),
|
||||
\fBmt\fP(1),
|
||||
\fBpax\fP(1),
|
||||
\fBtar\fP(1),
|
||||
\fBlibarchive\fP(3),
|
||||
\fBcpio\fP(5),
|
||||
\fBlibarchive-formats\fP(5),
|
||||
\fBtar\fP(5)
|
||||
.SH STANDARDS
|
||||
.ad l
|
||||
There is no current POSIX standard for the cpio command; it appeared
|
||||
in
|
||||
ISO/IEC 9945-1:1996 (``POSIX.1'')
|
||||
but was dropped from
|
||||
IEEE Std 1003.1-2001 (``POSIX.1'').
|
||||
.PP
|
||||
The cpio, ustar, and pax interchange file formats are defined by
|
||||
IEEE Std 1003.1-2001 (``POSIX.1'')
|
||||
for the pax command.
|
||||
.SH HISTORY
|
||||
.ad l
|
||||
The original
|
||||
\fB\%cpio\fP
|
||||
and
|
||||
\fB\%find\fP
|
||||
utilities were written by Dick Haight
|
||||
while working in AT&T's Unix Support Group.
|
||||
They first appeared in 1977 in PWB/UNIX 1.0, the
|
||||
``Programmer's Work Bench''
|
||||
system developed for use within AT&T.
|
||||
They were first released outside of AT&T as part of System III Unix in 1981.
|
||||
As a result,
|
||||
\fB\%cpio\fP
|
||||
actually predates
|
||||
\fB\%tar\fP,
|
||||
even though it was not well-known outside of AT&T until some time later.
|
||||
.PP
|
||||
This is a complete re-implementation based on the
|
||||
\fBlibarchive\fP(3)
|
||||
library.
|
||||
.SH BUGS
|
||||
.ad l
|
||||
The cpio archive format has several basic limitations:
|
||||
It does not store user and group names, only numbers.
|
||||
As a result, it cannot be reliably used to transfer
|
||||
files between systems with dissimilar user and group numbering.
|
||||
Older cpio formats limit the user and group numbers to
|
||||
16 or 18 bits, which is insufficient for modern systems.
|
||||
The cpio archive formats cannot support files over 4 gigabytes,
|
||||
except for the
|
||||
``odc''
|
||||
variant, which can support files up to 8 gigabytes.
|
1473
dependencies/libarchive-3.4.2/doc/man/bsdtar.1
vendored
Normal file
1473
dependencies/libarchive-3.4.2/doc/man/bsdtar.1
vendored
Normal file
File diff suppressed because it is too large
Load diff
329
dependencies/libarchive-3.4.2/doc/man/cpio.5
vendored
Normal file
329
dependencies/libarchive-3.4.2/doc/man/cpio.5
vendored
Normal file
|
@ -0,0 +1,329 @@
|
|||
.TH CPIO 5 "December 23, 2011" ""
|
||||
.SH NAME
|
||||
.ad l
|
||||
\fB\%cpio\fP
|
||||
\- format of cpio archive files
|
||||
.SH DESCRIPTION
|
||||
.ad l
|
||||
The
|
||||
\fB\%cpio\fP
|
||||
archive format collects any number of files, directories, and other
|
||||
file system objects (symbolic links, device nodes, etc.) into a single
|
||||
stream of bytes.
|
||||
.SS General Format
|
||||
Each file system object in a
|
||||
\fB\%cpio\fP
|
||||
archive comprises a header record with basic numeric metadata
|
||||
followed by the full pathname of the entry and the file data.
|
||||
The header record stores a series of integer values that generally
|
||||
follow the fields in
|
||||
\fIstruct\fP stat.
|
||||
(See
|
||||
\fBstat\fP(2)
|
||||
for details.)
|
||||
The variants differ primarily in how they store those integers
|
||||
(binary, octal, or hexadecimal).
|
||||
The header is followed by the pathname of the
|
||||
entry (the length of the pathname is stored in the header)
|
||||
and any file data.
|
||||
The end of the archive is indicated by a special record with
|
||||
the pathname
|
||||
``TRAILER!!!''.
|
||||
.SS PWB format
|
||||
XXX Any documentation of the original PWB/UNIX 1.0 format? XXX
|
||||
.SS Old Binary Format
|
||||
The old binary
|
||||
\fB\%cpio\fP
|
||||
format stores numbers as 2-byte and 4-byte binary values.
|
||||
Each entry begins with a header in the following format:
|
||||
.RS 4
|
||||
.nf
|
||||
struct header_old_cpio {
|
||||
unsigned short c_magic;
|
||||
unsigned short c_dev;
|
||||
unsigned short c_ino;
|
||||
unsigned short c_mode;
|
||||
unsigned short c_uid;
|
||||
unsigned short c_gid;
|
||||
unsigned short c_nlink;
|
||||
unsigned short c_rdev;
|
||||
unsigned short c_mtime[2];
|
||||
unsigned short c_namesize;
|
||||
unsigned short c_filesize[2];
|
||||
};
|
||||
.RE
|
||||
.PP
|
||||
The
|
||||
\fIunsigned\fP short
|
||||
fields here are 16-bit integer values; the
|
||||
\fIunsigned\fP int
|
||||
fields are 32-bit integer values.
|
||||
The fields are as follows
|
||||
.RS 5
|
||||
.TP
|
||||
\fImagic\fP
|
||||
The integer value octal 070707.
|
||||
This value can be used to determine whether this archive is
|
||||
written with little-endian or big-endian integers.
|
||||
.TP
|
||||
\fIdev\fP, \fIino\fP
|
||||
The device and inode numbers from the disk.
|
||||
These are used by programs that read
|
||||
\fB\%cpio\fP
|
||||
archives to determine when two entries refer to the same file.
|
||||
Programs that synthesize
|
||||
\fB\%cpio\fP
|
||||
archives should be careful to set these to distinct values for each entry.
|
||||
.TP
|
||||
\fImode\fP
|
||||
The mode specifies both the regular permissions and the file type.
|
||||
It consists of several bit fields as follows:
|
||||
.RS 5
|
||||
.TP
|
||||
0170000
|
||||
This masks the file type bits.
|
||||
.TP
|
||||
0140000
|
||||
File type value for sockets.
|
||||
.TP
|
||||
0120000
|
||||
File type value for symbolic links.
|
||||
For symbolic links, the link body is stored as file data.
|
||||
.TP
|
||||
0100000
|
||||
File type value for regular files.
|
||||
.TP
|
||||
0060000
|
||||
File type value for block special devices.
|
||||
.TP
|
||||
0040000
|
||||
File type value for directories.
|
||||
.TP
|
||||
0020000
|
||||
File type value for character special devices.
|
||||
.TP
|
||||
0010000
|
||||
File type value for named pipes or FIFOs.
|
||||
.TP
|
||||
0004000
|
||||
SUID bit.
|
||||
.TP
|
||||
0002000
|
||||
SGID bit.
|
||||
.TP
|
||||
0001000
|
||||
Sticky bit.
|
||||
On some systems, this modifies the behavior of executables and/or directories.
|
||||
.TP
|
||||
0000777
|
||||
The lower 9 bits specify read/write/execute permissions
|
||||
for world, group, and user following standard POSIX conventions.
|
||||
.RE
|
||||
.TP
|
||||
\fIuid\fP, \fIgid\fP
|
||||
The numeric user id and group id of the owner.
|
||||
.TP
|
||||
\fInlink\fP
|
||||
The number of links to this file.
|
||||
Directories always have a value of at least two here.
|
||||
Note that hardlinked files include file data with every copy in the archive.
|
||||
.TP
|
||||
\fIrdev\fP
|
||||
For block special and character special entries,
|
||||
this field contains the associated device number.
|
||||
For all other entry types, it should be set to zero by writers
|
||||
and ignored by readers.
|
||||
.TP
|
||||
\fImtime\fP
|
||||
Modification time of the file, indicated as the number
|
||||
of seconds since the start of the epoch,
|
||||
00:00:00 UTC January 1, 1970.
|
||||
The four-byte integer is stored with the most-significant 16 bits first
|
||||
followed by the least-significant 16 bits.
|
||||
Each of the two 16 bit values are stored in machine-native byte order.
|
||||
.TP
|
||||
\fInamesize\fP
|
||||
The number of bytes in the pathname that follows the header.
|
||||
This count includes the trailing NUL byte.
|
||||
.TP
|
||||
\fIfilesize\fP
|
||||
The size of the file.
|
||||
Note that this archive format is limited to
|
||||
four gigabyte file sizes.
|
||||
See
|
||||
\fImtime\fP
|
||||
above for a description of the storage of four-byte integers.
|
||||
.RE
|
||||
.PP
|
||||
The pathname immediately follows the fixed header.
|
||||
If the
|
||||
\fBnamesize\fP
|
||||
is odd, an additional NUL byte is added after the pathname.
|
||||
The file data is then appended, padded with NUL
|
||||
bytes to an even length.
|
||||
.PP
|
||||
Hardlinked files are not given special treatment;
|
||||
the full file contents are included with each copy of the
|
||||
file.
|
||||
.SS Portable ASCII Format
|
||||
Version 2 of the Single UNIX Specification (``SUSv2'')
|
||||
standardized an ASCII variant that is portable across all
|
||||
platforms.
|
||||
It is commonly known as the
|
||||
``old character''
|
||||
format or as the
|
||||
``odc''
|
||||
format.
|
||||
It stores the same numeric fields as the old binary format, but
|
||||
represents them as 6-character or 11-character octal values.
|
||||
.RS 4
|
||||
.nf
|
||||
struct cpio_odc_header {
|
||||
char c_magic[6];
|
||||
char c_dev[6];
|
||||
char c_ino[6];
|
||||
char c_mode[6];
|
||||
char c_uid[6];
|
||||
char c_gid[6];
|
||||
char c_nlink[6];
|
||||
char c_rdev[6];
|
||||
char c_mtime[11];
|
||||
char c_namesize[6];
|
||||
char c_filesize[11];
|
||||
};
|
||||
.RE
|
||||
.PP
|
||||
The fields are identical to those in the old binary format.
|
||||
The name and file body follow the fixed header.
|
||||
Unlike the old binary format, there is no additional padding
|
||||
after the pathname or file contents.
|
||||
If the files being archived are themselves entirely ASCII, then
|
||||
the resulting archive will be entirely ASCII, except for the
|
||||
NUL byte that terminates the name field.
|
||||
.SS New ASCII Format
|
||||
The "new" ASCII format uses 8-byte hexadecimal fields for
|
||||
all numbers and separates device numbers into separate fields
|
||||
for major and minor numbers.
|
||||
.RS 4
|
||||
.nf
|
||||
struct cpio_newc_header {
|
||||
char c_magic[6];
|
||||
char c_ino[8];
|
||||
char c_mode[8];
|
||||
char c_uid[8];
|
||||
char c_gid[8];
|
||||
char c_nlink[8];
|
||||
char c_mtime[8];
|
||||
char c_filesize[8];
|
||||
char c_devmajor[8];
|
||||
char c_devminor[8];
|
||||
char c_rdevmajor[8];
|
||||
char c_rdevminor[8];
|
||||
char c_namesize[8];
|
||||
char c_check[8];
|
||||
};
|
||||
.RE
|
||||
.PP
|
||||
Except as specified below, the fields here match those specified
|
||||
for the old binary format above.
|
||||
.RS 5
|
||||
.TP
|
||||
\fImagic\fP
|
||||
The string
|
||||
``070701''.
|
||||
.TP
|
||||
\fIcheck\fP
|
||||
This field is always set to zero by writers and ignored by readers.
|
||||
See the next section for more details.
|
||||
.RE
|
||||
.PP
|
||||
The pathname is followed by NUL bytes so that the total size
|
||||
of the fixed header plus pathname is a multiple of four.
|
||||
Likewise, the file data is padded to a multiple of four bytes.
|
||||
Note that this format supports only 4 gigabyte files (unlike the
|
||||
older ASCII format, which supports 8 gigabyte files).
|
||||
.PP
|
||||
In this format, hardlinked files are handled by setting the
|
||||
filesize to zero for each entry except the last one that
|
||||
appears in the archive.
|
||||
.SS New CRC Format
|
||||
The CRC format is identical to the new ASCII format described
|
||||
in the previous section except that the magic field is set
|
||||
to
|
||||
``070702''
|
||||
and the
|
||||
\fIcheck\fP
|
||||
field is set to the sum of all bytes in the file data.
|
||||
This sum is computed treating all bytes as unsigned values
|
||||
and using unsigned arithmetic.
|
||||
Only the least-significant 32 bits of the sum are stored.
|
||||
.SS HP variants
|
||||
The
|
||||
\fB\%cpio\fP
|
||||
implementation distributed with HPUX used XXXX but stored
|
||||
device numbers differently XXX.
|
||||
.SS Other Extensions and Variants
|
||||
Sun Solaris uses additional file types to store extended file
|
||||
data, including ACLs and extended attributes, as special
|
||||
entries in cpio archives.
|
||||
.PP
|
||||
XXX Others? XXX
|
||||
.SH SEE ALSO
|
||||
.ad l
|
||||
\fBcpio\fP(1),
|
||||
\fBtar\fP(5)
|
||||
.SH STANDARDS
|
||||
.ad l
|
||||
The
|
||||
\fB\%cpio\fP
|
||||
utility is no longer a part of POSIX or the Single Unix Standard.
|
||||
It last appeared in
|
||||
Version 2 of the Single UNIX Specification (``SUSv2'').
|
||||
It has been supplanted in subsequent standards by
|
||||
\fBpax\fP(1).
|
||||
The portable ASCII format is currently part of the specification for the
|
||||
\fBpax\fP(1)
|
||||
utility.
|
||||
.SH HISTORY
|
||||
.ad l
|
||||
The original cpio utility was written by Dick Haight
|
||||
while working in AT&T's Unix Support Group.
|
||||
It appeared in 1977 as part of PWB/UNIX 1.0, the
|
||||
``Programmer's Work Bench''
|
||||
derived from
|
||||
At v6
|
||||
that was used internally at AT&T.
|
||||
Both the old binary and old character formats were in use
|
||||
by 1980, according to the System III source released
|
||||
by SCO under their
|
||||
``Ancient Unix''
|
||||
license.
|
||||
The character format was adopted as part of
|
||||
IEEE Std 1003.1-1988 (``POSIX.1'').
|
||||
XXX when did "newc" appear? Who invented it? When did HP come out with their variant? When did Sun introduce ACLs and extended attributes? XXX
|
||||
.SH BUGS
|
||||
.ad l
|
||||
The
|
||||
``CRC''
|
||||
format is mis-named, as it uses a simple checksum and
|
||||
not a cyclic redundancy check.
|
||||
.PP
|
||||
The old binary format is limited to 16 bits for user id,
|
||||
group id, device, and inode numbers.
|
||||
It is limited to 4 gigabyte file sizes.
|
||||
.PP
|
||||
The old ASCII format is limited to 18 bits for
|
||||
the user id, group id, device, and inode numbers.
|
||||
It is limited to 8 gigabyte file sizes.
|
||||
.PP
|
||||
The new ASCII format is limited to 4 gigabyte file sizes.
|
||||
.PP
|
||||
None of the cpio formats store user or group names,
|
||||
which are essential when moving files between systems with
|
||||
dissimilar user or group numbering.
|
||||
.PP
|
||||
Especially when writing older cpio variants, it may be necessary
|
||||
to map actual device/inode values to synthesized values that
|
||||
fit the available fields.
|
||||
With very large filesystems, this may be necessary even for
|
||||
the newer formats.
|
452
dependencies/libarchive-3.4.2/doc/man/libarchive-formats.5
vendored
Normal file
452
dependencies/libarchive-3.4.2/doc/man/libarchive-formats.5
vendored
Normal file
|
@ -0,0 +1,452 @@
|
|||
.TH LIBARCHIVE-FORMATS 5 "December 27, 2016" ""
|
||||
.SH NAME
|
||||
.ad l
|
||||
\fB\%libarchive-formats\fP
|
||||
\- archive formats supported by the libarchive library
|
||||
.SH DESCRIPTION
|
||||
.ad l
|
||||
The
|
||||
\fBlibarchive\fP(3)
|
||||
library reads and writes a variety of streaming archive formats.
|
||||
Generally speaking, all of these archive formats consist of a series of
|
||||
``entries''.
|
||||
Each entry stores a single file system object, such as a file, directory,
|
||||
or symbolic link.
|
||||
.PP
|
||||
The following provides a brief description of each format supported
|
||||
by libarchive, with some information about recognized extensions or
|
||||
limitations of the current library support.
|
||||
Note that just because a format is supported by libarchive does not
|
||||
imply that a program that uses libarchive will support that format.
|
||||
Applications that use libarchive specify which formats they wish
|
||||
to support, though many programs do use libarchive convenience
|
||||
functions to enable all supported formats.
|
||||
.SS Tar Formats
|
||||
The
|
||||
\fBlibarchive\fP(3)
|
||||
library can read most tar archives.
|
||||
It can write POSIX-standard
|
||||
``ustar''
|
||||
and
|
||||
``pax interchange''
|
||||
formats as well as v7 tar format and a subset of the legacy GNU tar format.
|
||||
.PP
|
||||
All tar formats store each entry in one or more 512-byte records.
|
||||
The first record is used for file metadata, including filename,
|
||||
timestamp, and mode information, and the file data is stored in
|
||||
subsequent records.
|
||||
Later variants have extended this by either appropriating undefined
|
||||
areas of the header record, extending the header to multiple records,
|
||||
or by storing special entries that modify the interpretation of
|
||||
subsequent entries.
|
||||
.RS 5
|
||||
.TP
|
||||
\fBgnutar\fP
|
||||
The
|
||||
\fBlibarchive\fP(3)
|
||||
library can read most GNU-format tar archives.
|
||||
It currently supports the most popular GNU extensions, including
|
||||
modern long filename and linkname support, as well as atime and ctime data.
|
||||
The libarchive library does not support multi-volume
|
||||
archives, nor the old GNU long filename format.
|
||||
It can read GNU sparse file entries, including the new POSIX-based
|
||||
formats.
|
||||
.PP
|
||||
The
|
||||
\fBlibarchive\fP(3)
|
||||
library can write GNU tar format, including long filename
|
||||
and linkname support, as well as atime and ctime data.
|
||||
.TP
|
||||
\fBpax\fP
|
||||
The
|
||||
\fBlibarchive\fP(3)
|
||||
library can read and write POSIX-compliant pax interchange format
|
||||
archives.
|
||||
Pax interchange format archives are an extension of the older ustar
|
||||
format that adds a separate entry with additional attributes stored
|
||||
as key/value pairs immediately before each regular entry.
|
||||
The presence of these additional entries is the only difference between
|
||||
pax interchange format and the older ustar format.
|
||||
The extended attributes are of unlimited length and are stored
|
||||
as UTF-8 Unicode strings.
|
||||
Keywords defined in the standard are in all lowercase; vendors are allowed
|
||||
to define custom keys by preceding them with the vendor name in all uppercase.
|
||||
When writing pax archives, libarchive uses many of the SCHILY keys
|
||||
defined by Joerg Schilling's
|
||||
``star''
|
||||
archiver and a few LIBARCHIVE keys.
|
||||
The libarchive library can read most of the SCHILY keys
|
||||
and most of the GNU keys introduced by GNU tar.
|
||||
It silently ignores any keywords that it does not understand.
|
||||
.PP
|
||||
The pax interchange format converts filenames to Unicode
|
||||
and stores them using the UTF-8 encoding.
|
||||
Prior to libarchive 3.0, libarchive erroneously assumed
|
||||
that the system wide-character routines natively supported
|
||||
Unicode.
|
||||
This caused it to mis-handle non-ASCII filenames on systems
|
||||
that did not satisfy this assumption.
|
||||
.TP
|
||||
\fBrestricted\fP pax
|
||||
The libarchive library can also write pax archives in which it
|
||||
attempts to suppress the extended attributes entry whenever
|
||||
possible.
|
||||
The result will be identical to a ustar archive unless the
|
||||
extended attributes entry is required to store a long file
|
||||
name, long linkname, extended ACL, file flags, or if any of the standard
|
||||
ustar data (user name, group name, UID, GID, etc) cannot be fully
|
||||
represented in the ustar header.
|
||||
In all cases, the result can be dearchived by any program that
|
||||
can read POSIX-compliant pax interchange format archives.
|
||||
Programs that correctly read ustar format (see below) will also be
|
||||
able to read this format; any extended attributes will be extracted as
|
||||
separate files stored in
|
||||
\fIPaxHeader\fP
|
||||
directories.
|
||||
.TP
|
||||
\fBustar\fP
|
||||
The libarchive library can both read and write this format.
|
||||
This format has the following limitations:
|
||||
.RS 5
|
||||
.IP \(bu
|
||||
Device major and minor numbers are limited to 21 bits.
|
||||
Nodes with larger numbers will not be added to the archive.
|
||||
.IP \(bu
|
||||
Path names in the archive are limited to 255 bytes.
|
||||
(Shorter if there is no / character in exactly the right place.)
|
||||
.IP \(bu
|
||||
Symbolic links and hard links are stored in the archive with
|
||||
the name of the referenced file.
|
||||
This name is limited to 100 bytes.
|
||||
.IP \(bu
|
||||
Extended attributes, file flags, and other extended
|
||||
security information cannot be stored.
|
||||
.IP \(bu
|
||||
Archive entries are limited to 8 gigabytes in size.
|
||||
.RE
|
||||
Note that the pax interchange format has none of these restrictions.
|
||||
The ustar format is old and widely supported.
|
||||
It is recommended when compatibility is the primary concern.
|
||||
.TP
|
||||
\fBv7\fP
|
||||
The libarchive library can read and write the legacy v7 tar format.
|
||||
This format has the following limitations:
|
||||
.RS 5
|
||||
.IP \(bu
|
||||
Only regular files, directories, and symbolic links can be archived.
|
||||
Block and character device nodes, FIFOs, and sockets cannot be archived.
|
||||
.IP \(bu
|
||||
Path names in the archive are limited to 100 bytes.
|
||||
.IP \(bu
|
||||
Symbolic links and hard links are stored in the archive with
|
||||
the name of the referenced file.
|
||||
This name is limited to 100 bytes.
|
||||
.IP \(bu
|
||||
User and group information are stored as numeric IDs; there
|
||||
is no provision for storing user or group names.
|
||||
.IP \(bu
|
||||
Extended attributes, file flags, and other extended
|
||||
security information cannot be stored.
|
||||
.IP \(bu
|
||||
Archive entries are limited to 8 gigabytes in size.
|
||||
.RE
|
||||
Generally, users should prefer the ustar format for portability
|
||||
as the v7 tar format is both less useful and less portable.
|
||||
.RE
|
||||
.PP
|
||||
The libarchive library also reads a variety of commonly-used extensions to
|
||||
the basic tar format.
|
||||
These extensions are recognized automatically whenever they appear.
|
||||
.RS 5
|
||||
.TP
|
||||
Numeric extensions.
|
||||
The POSIX standards require fixed-length numeric fields to be written with
|
||||
some character position reserved for terminators.
|
||||
Libarchive allows these fields to be written without terminator characters.
|
||||
This extends the allowable range; in particular, ustar archives with this
|
||||
extension can support entries up to 64 gigabytes in size.
|
||||
Libarchive also recognizes base-256 values in most numeric fields.
|
||||
This essentially removes all limitations on file size, modification time,
|
||||
and device numbers.
|
||||
.TP
|
||||
Solaris extensions
|
||||
Libarchive recognizes ACL and extended attribute records written
|
||||
by Solaris tar.
|
||||
.RE
|
||||
.PP
|
||||
The first tar program appeared in Seventh Edition Unix in 1979.
|
||||
The first official standard for the tar file format was the
|
||||
``ustar''
|
||||
(Unix Standard Tar) format defined by POSIX in 1988.
|
||||
POSIX.1-2001 extended the ustar format to create the
|
||||
``pax interchange''
|
||||
format.
|
||||
.SS Cpio Formats
|
||||
The libarchive library can read a number of common cpio variants and can write
|
||||
``odc''
|
||||
and
|
||||
``newc''
|
||||
format archives.
|
||||
A cpio archive stores each entry as a fixed-size header followed
|
||||
by a variable-length filename and variable-length data.
|
||||
Unlike the tar format, the cpio format does only minimal padding
|
||||
of the header or file data.
|
||||
There are several cpio variants, which differ primarily in
|
||||
how they store the initial header: some store the values as
|
||||
octal or hexadecimal numbers in ASCII, others as binary values of
|
||||
varying byte order and length.
|
||||
.RS 5
|
||||
.TP
|
||||
\fBbinary\fP
|
||||
The libarchive library transparently reads both big-endian and little-endian
|
||||
variants of the original binary cpio format.
|
||||
This format used 32-bit binary values for file size and mtime,
|
||||
and 16-bit binary values for the other fields.
|
||||
.TP
|
||||
\fBodc\fP
|
||||
The libarchive library can both read and write this
|
||||
POSIX-standard format, which is officially known as the
|
||||
``cpio interchange format''
|
||||
or the
|
||||
``octet-oriented cpio archive format''
|
||||
and sometimes unofficially referred to as the
|
||||
``old character format''.
|
||||
This format stores the header contents as octal values in ASCII.
|
||||
It is standard, portable, and immune from byte-order confusion.
|
||||
File sizes and mtime are limited to 33 bits (8GB file size),
|
||||
other fields are limited to 18 bits.
|
||||
.TP
|
||||
\fBSVR4/newc\fP
|
||||
The libarchive library can read both CRC and non-CRC variants of
|
||||
this format.
|
||||
The SVR4 format uses eight-digit hexadecimal values for
|
||||
all header fields.
|
||||
This limits file size to 4GB, and also limits the mtime and
|
||||
other fields to 32 bits.
|
||||
The SVR4 format can optionally include a CRC of the file
|
||||
contents, although libarchive does not currently verify this CRC.
|
||||
.RE
|
||||
.PP
|
||||
Cpio first appeared in PWB/UNIX 1.0, which was released within
|
||||
AT&T in 1977.
|
||||
PWB/UNIX 1.0 formed the basis of System III Unix, released outside
|
||||
of AT&T in 1981.
|
||||
This makes cpio older than tar, although cpio was not included
|
||||
in Version 7 AT&T Unix.
|
||||
As a result, the tar command became much better known in universities
|
||||
and research groups that used Version 7.
|
||||
The combination of the
|
||||
\fB\%find\fP
|
||||
and
|
||||
\fB\%cpio\fP
|
||||
utilities provided very precise control over file selection.
|
||||
Unfortunately, the format has many limitations that make it unsuitable
|
||||
for widespread use.
|
||||
Only the POSIX format permits files over 4GB, and its 18-bit
|
||||
limit for most other fields makes it unsuitable for modern systems.
|
||||
In addition, cpio formats only store numeric UID/GID values (not
|
||||
usernames and group names), which can make it very difficult to correctly
|
||||
transfer archives across systems with dissimilar user numbering.
|
||||
.SS Shar Formats
|
||||
A
|
||||
``shell archive''
|
||||
is a shell script that, when executed on a POSIX-compliant
|
||||
system, will recreate a collection of file system objects.
|
||||
The libarchive library can write two different kinds of shar archives:
|
||||
.RS 5
|
||||
.TP
|
||||
\fBshar\fP
|
||||
The traditional shar format uses a limited set of POSIX
|
||||
commands, including
|
||||
\fBecho\fP(1),
|
||||
\fBmkdir\fP(1),
|
||||
and
|
||||
\fBsed\fP(1).
|
||||
It is suitable for portably archiving small collections of plain text files.
|
||||
However, it is not generally well-suited for large archives
|
||||
(many implementations of
|
||||
\fBsh\fP(1)
|
||||
have limits on the size of a script) nor should it be used with non-text files.
|
||||
.TP
|
||||
\fBshardump\fP
|
||||
This format is similar to shar but encodes files using
|
||||
\fBuuencode\fP(1)
|
||||
so that the result will be a plain text file regardless of the file contents.
|
||||
It also includes additional shell commands that attempt to reproduce as
|
||||
many file attributes as possible, including owner, mode, and flags.
|
||||
The additional commands used to restore file attributes make
|
||||
shardump archives less portable than plain shar archives.
|
||||
.RE
|
||||
.SS ISO9660 format
|
||||
Libarchive can read and extract from files containing ISO9660-compliant
|
||||
CDROM images.
|
||||
In many cases, this can remove the need to burn a physical CDROM
|
||||
just in order to read the files contained in an ISO9660 image.
|
||||
It also avoids security and complexity issues that come with
|
||||
virtual mounts and loopback devices.
|
||||
Libarchive supports the most common Rockridge extensions and has partial
|
||||
support for Joliet extensions.
|
||||
If both extensions are present, the Joliet extensions will be
|
||||
used and the Rockridge extensions will be ignored.
|
||||
In particular, this can create problems with hardlinks and symlinks,
|
||||
which are supported by Rockridge but not by Joliet.
|
||||
.PP
|
||||
Libarchive reads ISO9660 images using a streaming strategy.
|
||||
This allows it to read compressed images directly
|
||||
(decompressing on the fly) and allows it to read images
|
||||
directly from network sockets, pipes, and other non-seekable
|
||||
data sources.
|
||||
This strategy works well for optimized ISO9660 images created
|
||||
by many popular programs.
|
||||
Such programs collect all directory information at the beginning
|
||||
of the ISO9660 image so it can be read from a physical disk
|
||||
with a minimum of seeking.
|
||||
However, not all ISO9660 images can be read in this fashion.
|
||||
.PP
|
||||
Libarchive can also write ISO9660 images.
|
||||
Such images are fully optimized with the directory information
|
||||
preceding all file data.
|
||||
This is done by storing all file data to a temporary file
|
||||
while collecting directory information in memory.
|
||||
When the image is finished, libarchive writes out the
|
||||
directory structure followed by the file data.
|
||||
The location used for the temporary file can be changed
|
||||
by the usual environment variables.
|
||||
.SS Zip format
|
||||
Libarchive can read and write zip format archives that have
|
||||
uncompressed entries and entries compressed with the
|
||||
``deflate''
|
||||
algorithm.
|
||||
Other zip compression algorithms are not supported.
|
||||
It can extract jar archives, archives that use Zip64 extensions and
|
||||
self-extracting zip archives.
|
||||
Libarchive can use either of two different strategies for
|
||||
reading Zip archives:
|
||||
a streaming strategy which is fast and can handle extremely
|
||||
large archives, and a seeking strategy which can correctly
|
||||
process self-extracting Zip archives and archives with
|
||||
deleted members or other in-place modifications.
|
||||
.PP
|
||||
The streaming reader processes Zip archives as they are read.
|
||||
It can read archives of arbitrary size from tape or
|
||||
network sockets, and can decode Zip archives that have
|
||||
been separately compressed or encoded.
|
||||
However, self-extracting Zip archives and archives with
|
||||
certain types of modifications cannot be correctly
|
||||
handled.
|
||||
Such archives require that the reader first process the
|
||||
Central Directory, which is ordinarily located
|
||||
at the end of a Zip archive and is thus inaccessible
|
||||
to the streaming reader.
|
||||
If the program using libarchive has enabled seek support, then
|
||||
libarchive will use this to processes the central directory first.
|
||||
.PP
|
||||
In particular, the seeking reader must be used to
|
||||
correctly handle self-extracting archives.
|
||||
Such archives consist of a program followed by a regular
|
||||
Zip archive.
|
||||
The streaming reader cannot parse the initial program
|
||||
portion, but the seeking reader starts by reading the
|
||||
Central Directory from the end of the archive.
|
||||
Similarly, Zip archives that have been modified in-place
|
||||
can have deleted entries or other garbage data that
|
||||
can only be accurately detected by first reading the
|
||||
Central Directory.
|
||||
.SS Archive (library) file format
|
||||
The Unix archive format (commonly created by the
|
||||
\fBar\fP(1)
|
||||
archiver) is a general-purpose format which is
|
||||
used almost exclusively for object files to be
|
||||
read by the link editor
|
||||
\fBld\fP(1).
|
||||
The ar format has never been standardised.
|
||||
There are two common variants:
|
||||
the GNU format derived from SVR4,
|
||||
and the BSD format, which first appeared in 4.4BSD.
|
||||
The two differ primarily in their handling of filenames
|
||||
longer than 15 characters:
|
||||
the GNU/SVR4 variant writes a filename table at the beginning of the archive;
|
||||
the BSD format stores each long filename in an extension
|
||||
area adjacent to the entry.
|
||||
Libarchive can read both extensions,
|
||||
including archives that may include both types of long filenames.
|
||||
Programs using libarchive can write GNU/SVR4 format
|
||||
if they provide an entry called
|
||||
\fI//\fP
|
||||
containing a filename table to be written into the archive
|
||||
before any of the entries.
|
||||
Any entries whose names are not in the filename table
|
||||
will be written using BSD-style long filenames.
|
||||
This can cause problems for programs such as
|
||||
GNU ld that do not support the BSD-style long filenames.
|
||||
.SS mtree
|
||||
Libarchive can read and write files in
|
||||
\fBmtree\fP(5)
|
||||
format.
|
||||
This format is not a true archive format, but rather a textual description
|
||||
of a file hierarchy in which each line specifies the name of a file and
|
||||
provides specific metadata about that file.
|
||||
Libarchive can read all of the keywords supported by both
|
||||
the NetBSD and FreeBSD versions of
|
||||
\fBmtree\fP(8),
|
||||
although many of the keywords cannot currently be stored in an
|
||||
Tn archive_entry
|
||||
object.
|
||||
When writing, libarchive supports use of the
|
||||
\fBarchive_write_set_options\fP(3)
|
||||
interface to specify which keywords should be included in the
|
||||
output.
|
||||
If libarchive was compiled with access to suitable
|
||||
cryptographic libraries (such as the OpenSSL libraries),
|
||||
it can compute hash entries such as
|
||||
\fBsha512\fP
|
||||
or
|
||||
\fBmd5\fP
|
||||
from file data being written to the mtree writer.
|
||||
.PP
|
||||
When reading an mtree file, libarchive will locate the corresponding
|
||||
files on disk using the
|
||||
\fBcontents\fP
|
||||
keyword if present or the regular filename.
|
||||
If it can locate and open the file on disk, it will use that
|
||||
to fill in any metadata that is missing from the mtree file
|
||||
and will read the file contents and return those to the program
|
||||
using libarchive.
|
||||
If it cannot locate and open the file on disk, libarchive
|
||||
will return an error for any attempt to read the entry
|
||||
body.
|
||||
.SS 7-Zip
|
||||
Libarchive can read and write 7-Zip format archives.
|
||||
TODO: Need more information
|
||||
.SS CAB
|
||||
Libarchive can read Microsoft Cabinet (
|
||||
``CAB )''
|
||||
format archives.
|
||||
TODO: Need more information.
|
||||
.SS LHA
|
||||
TODO: Information about libarchive's LHA support
|
||||
.SS RAR
|
||||
Libarchive has limited support for reading RAR format archives.
|
||||
Currently, libarchive can read RARv3 format archives
|
||||
which have been either created uncompressed, or compressed using
|
||||
any of the compression methods supported by the RARv3 format.
|
||||
Libarchive can also read self-extracting RAR archives.
|
||||
.SS Warc
|
||||
Libarchive can read and write
|
||||
``web archives''.
|
||||
TODO: Need more information
|
||||
.SS XAR
|
||||
Libarchive can read and write the XAR format used by many Apple tools.
|
||||
TODO: Need more information
|
||||
.SH SEE ALSO
|
||||
.ad l
|
||||
\fBar\fP(1),
|
||||
\fBcpio\fP(1),
|
||||
\fBmkisofs\fP(1),
|
||||
\fBshar\fP(1),
|
||||
\fBtar\fP(1),
|
||||
\fBzip\fP(1),
|
||||
\fBzlib\fP(3),
|
||||
\fBcpio\fP(5),
|
||||
\fBmtree\fP(5),
|
||||
\fBtar\fP(5)
|
271
dependencies/libarchive-3.4.2/doc/man/libarchive.3
vendored
Normal file
271
dependencies/libarchive-3.4.2/doc/man/libarchive.3
vendored
Normal file
|
@ -0,0 +1,271 @@
|
|||
.TH LIBARCHIVE 3 "March 18, 2012" ""
|
||||
.SH NAME
|
||||
.ad l
|
||||
\fB\%libarchive\fP
|
||||
\- functions for reading and writing streaming archives
|
||||
.SH OVERVIEW
|
||||
.ad l
|
||||
The
|
||||
\fB\%libarchive\fP
|
||||
library provides a flexible interface for reading and writing
|
||||
archives in various formats such as tar and cpio.
|
||||
\fB\%libarchive\fP
|
||||
also supports reading and writing archives compressed using
|
||||
various compression filters such as gzip and bzip2.
|
||||
The library is inherently stream-oriented; readers serially iterate through
|
||||
the archive, writers serially add things to the archive.
|
||||
In particular, note that there is currently no built-in support for
|
||||
random access nor for in-place modification.
|
||||
.PP
|
||||
When reading an archive, the library automatically detects the
|
||||
format and the compression.
|
||||
The library currently has read support for:
|
||||
.RS 5
|
||||
.IP \(bu
|
||||
old-style tar archives,
|
||||
.IP \(bu
|
||||
most variants of the POSIX
|
||||
``ustar''
|
||||
format,
|
||||
.IP \(bu
|
||||
the POSIX
|
||||
``pax interchange''
|
||||
format,
|
||||
.IP \(bu
|
||||
GNU-format tar archives,
|
||||
.IP \(bu
|
||||
most common cpio archive formats,
|
||||
.IP \(bu
|
||||
ISO9660 CD images (including RockRidge and Joliet extensions),
|
||||
.IP \(bu
|
||||
Zip archives,
|
||||
.IP \(bu
|
||||
ar archives (including GNU/SysV and BSD extensions),
|
||||
.IP \(bu
|
||||
Microsoft CAB archives,
|
||||
.IP \(bu
|
||||
LHA archives,
|
||||
.IP \(bu
|
||||
mtree file tree descriptions,
|
||||
.IP \(bu
|
||||
RAR archives,
|
||||
.IP \(bu
|
||||
XAR archives.
|
||||
.RE
|
||||
The library automatically detects archives compressed with
|
||||
\fBgzip\fP(1),
|
||||
\fBbzip2\fP(1),
|
||||
\fBxz\fP(1),
|
||||
\fBlzip\fP(1),
|
||||
or
|
||||
\fBcompress\fP(1)
|
||||
and decompresses them transparently.
|
||||
It can similarly detect and decode archives processed with
|
||||
\fBuuencode\fP(1)
|
||||
or which have an
|
||||
\fBrpm\fP(1)
|
||||
header.
|
||||
.PP
|
||||
When writing an archive, you can specify the compression
|
||||
to be used and the format to use.
|
||||
The library can write
|
||||
.RS 5
|
||||
.IP \(bu
|
||||
POSIX-standard
|
||||
``ustar''
|
||||
archives,
|
||||
.IP \(bu
|
||||
POSIX
|
||||
``pax interchange format''
|
||||
archives,
|
||||
.IP \(bu
|
||||
POSIX octet-oriented cpio archives,
|
||||
.IP \(bu
|
||||
Zip archive,
|
||||
.IP \(bu
|
||||
two different variants of shar archives,
|
||||
.IP \(bu
|
||||
ISO9660 CD images,
|
||||
.IP \(bu
|
||||
7-Zip archives,
|
||||
.IP \(bu
|
||||
ar archives,
|
||||
.IP \(bu
|
||||
mtree file tree descriptions,
|
||||
.IP \(bu
|
||||
XAR archives.
|
||||
.RE
|
||||
Pax interchange format is an extension of the tar archive format that
|
||||
eliminates essentially all of the limitations of historic tar formats
|
||||
in a standard fashion that is supported
|
||||
by POSIX-compliant
|
||||
\fBpax\fP(1)
|
||||
implementations on many systems as well as several newer implementations of
|
||||
\fBtar\fP(1).
|
||||
Note that the default write format will suppress the pax extended
|
||||
attributes for most entries; explicitly requesting pax format will
|
||||
enable those attributes for all entries.
|
||||
.PP
|
||||
The read and write APIs are accessed through the
|
||||
\fB\%archive_read_XXX\fP()
|
||||
functions and the
|
||||
\fB\%archive_write_XXX\fP()
|
||||
functions, respectively, and either can be used independently
|
||||
of the other.
|
||||
.PP
|
||||
The rest of this manual page provides an overview of the library
|
||||
operation.
|
||||
More detailed information can be found in the individual manual
|
||||
pages for each API or utility function.
|
||||
.SH READING AN ARCHIVE
|
||||
.ad l
|
||||
See
|
||||
\fBarchive_read\fP(3).
|
||||
.SH WRITING AN ARCHIVE
|
||||
.ad l
|
||||
See
|
||||
\fBarchive_write\fP(3).
|
||||
.SH WRITING ENTRIES TO DISK
|
||||
.ad l
|
||||
The
|
||||
\fBarchive_write_disk\fP(3)
|
||||
API allows you to write
|
||||
\fBarchive_entry\fP(3)
|
||||
objects to disk using the same API used by
|
||||
\fBarchive_write\fP(3).
|
||||
The
|
||||
\fBarchive_write_disk\fP(3)
|
||||
API is used internally by
|
||||
\fB\%archive_read_extract\fP(\fI\%;\fP)
|
||||
using it directly can provide greater control over how entries
|
||||
get written to disk.
|
||||
This API also makes it possible to share code between
|
||||
archive-to-archive copy and archive-to-disk extraction
|
||||
operations.
|
||||
.SH READING ENTRIES FROM DISK
|
||||
.ad l
|
||||
The
|
||||
\fBarchive_read_disk\fP(3)
|
||||
supports for populating
|
||||
\fBarchive_entry\fP(3)
|
||||
objects from information in the filesystem.
|
||||
This includes the information accessible from the
|
||||
\fBstat\fP(2)
|
||||
system call as well as ACLs, extended attributes,
|
||||
and other metadata.
|
||||
The
|
||||
\fBarchive_read_disk\fP(3)
|
||||
API also supports iterating over directory trees,
|
||||
which allows directories of files to be read using
|
||||
an API compatible with
|
||||
the
|
||||
\fBarchive_read\fP(3)
|
||||
API.
|
||||
.SH DESCRIPTION
|
||||
.ad l
|
||||
Detailed descriptions of each function are provided by the
|
||||
corresponding manual pages.
|
||||
.PP
|
||||
All of the functions utilize an opaque
|
||||
Tn struct archive
|
||||
datatype that provides access to the archive contents.
|
||||
.PP
|
||||
The
|
||||
Tn struct archive_entry
|
||||
structure contains a complete description of a single archive
|
||||
entry.
|
||||
It uses an opaque interface that is fully documented in
|
||||
\fBarchive_entry\fP(3).
|
||||
.PP
|
||||
Users familiar with historic formats should be aware that the newer
|
||||
variants have eliminated most restrictions on the length of textual fields.
|
||||
Clients should not assume that filenames, link names, user names, or
|
||||
group names are limited in length.
|
||||
In particular, pax interchange format can easily accommodate pathnames
|
||||
in arbitrary character sets that exceed
|
||||
\fIPATH_MAX\fP.
|
||||
.SH RETURN VALUES
|
||||
.ad l
|
||||
Most functions return
|
||||
\fBARCHIVE_OK\fP
|
||||
(zero) on success, non-zero on error.
|
||||
The return value indicates the general severity of the error, ranging
|
||||
from
|
||||
\fBARCHIVE_WARN\fP,
|
||||
which indicates a minor problem that should probably be reported
|
||||
to the user, to
|
||||
\fBARCHIVE_FATAL\fP,
|
||||
which indicates a serious problem that will prevent any further
|
||||
operations on this archive.
|
||||
On error, the
|
||||
\fB\%archive_errno\fP()
|
||||
function can be used to retrieve a numeric error code (see
|
||||
\fBerrno\fP(2)).
|
||||
The
|
||||
\fB\%archive_error_string\fP()
|
||||
returns a textual error message suitable for display.
|
||||
.PP
|
||||
\fB\%archive_read_new\fP()
|
||||
and
|
||||
\fB\%archive_write_new\fP()
|
||||
return pointers to an allocated and initialized
|
||||
Tn struct archive
|
||||
object.
|
||||
.PP
|
||||
\fB\%archive_read_data\fP()
|
||||
and
|
||||
\fB\%archive_write_data\fP()
|
||||
return a count of the number of bytes actually read or written.
|
||||
A value of zero indicates the end of the data for this entry.
|
||||
A negative value indicates an error, in which case the
|
||||
\fB\%archive_errno\fP()
|
||||
and
|
||||
\fB\%archive_error_string\fP()
|
||||
functions can be used to obtain more information.
|
||||
.SH ENVIRONMENT
|
||||
.ad l
|
||||
There are character set conversions within the
|
||||
\fBarchive_entry\fP(3)
|
||||
functions that are impacted by the currently-selected locale.
|
||||
.SH SEE ALSO
|
||||
.ad l
|
||||
\fBtar\fP(1),
|
||||
\fBarchive_entry\fP(3),
|
||||
\fBarchive_read\fP(3),
|
||||
\fBarchive_util\fP(3),
|
||||
\fBarchive_write\fP(3),
|
||||
\fBtar\fP(5)
|
||||
.SH HISTORY
|
||||
.ad l
|
||||
The
|
||||
\fB\%libarchive\fP
|
||||
library first appeared in
|
||||
FreeBSD 5.3.
|
||||
.SH AUTHORS
|
||||
.ad l
|
||||
-nosplit
|
||||
The
|
||||
\fB\%libarchive\fP
|
||||
library was originally written by
|
||||
Tim Kientzle \%<kientzle@acm.org.>
|
||||
.SH BUGS
|
||||
.ad l
|
||||
Some archive formats support information that is not supported by
|
||||
Tn struct archive_entry.
|
||||
Such information cannot be fully archived or restored using this library.
|
||||
This includes, for example, comments, character sets,
|
||||
or the arbitrary key/value pairs that can appear in
|
||||
pax interchange format archives.
|
||||
.PP
|
||||
Conversely, of course, not all of the information that can be
|
||||
stored in an
|
||||
Tn struct archive_entry
|
||||
is supported by all formats.
|
||||
For example, cpio formats do not support nanosecond timestamps;
|
||||
old tar formats do not support large device numbers.
|
||||
.PP
|
||||
The ISO9660 reader cannot yet read all ISO9660 images;
|
||||
it should learn how to seek.
|
||||
.PP
|
||||
The AR writer requires the client program to use
|
||||
two passes, unlike all other libarchive writers.
|
340
dependencies/libarchive-3.4.2/doc/man/libarchive_changes.3
vendored
Normal file
340
dependencies/libarchive-3.4.2/doc/man/libarchive_changes.3
vendored
Normal file
|
@ -0,0 +1,340 @@
|
|||
.TH LIBARCHIVE_CHANGES 3 "December 23, 2011" ""
|
||||
.SH NAME
|
||||
.ad l
|
||||
\fB\%libarchive_changes\fP
|
||||
\- changes in libarchive interface
|
||||
.SH CHANGES IN LIBARCHIVE 3
|
||||
.ad l
|
||||
This page describes user-visible changes in libarchive3, and lists
|
||||
public functions and other symbols changed, deprecated or removed
|
||||
in libarchive3, along with their replacements if any.
|
||||
.SS Multiple Filters
|
||||
Libarchive2 permitted a single (input or output) filter active
|
||||
on an archive.
|
||||
Libarchive3 extends this into a variable-length stack.
|
||||
Where
|
||||
\fB\%archive_write_set_compression_XXX\fP()
|
||||
would replace any existing filter,
|
||||
\fB\%archive_write_add_filter_XXX\fP()
|
||||
extends the write pipeline with another filter.
|
||||
.SS Character Set Handling
|
||||
Libarchive2 assumed that the local platform uses
|
||||
Tn Unicode
|
||||
as the native
|
||||
Tn wchar_t
|
||||
encoding, which is true on
|
||||
Tn Windows,
|
||||
modern
|
||||
Tn Linux,
|
||||
and a few other systems, but is certainly not universal.
|
||||
As a result, pax format archives were written incorrectly on some
|
||||
systems, since pax format requires
|
||||
Tn UTF-8
|
||||
and libarchive 2 incorrectly
|
||||
assumed that
|
||||
Tn wchar_t
|
||||
strings can be easily converted to
|
||||
Tn UTF-8.
|
||||
.PP
|
||||
Libarchive3 uses the standard iconv library to convert between character
|
||||
sets and is introducing the notion of a
|
||||
``default character set for the archive''.
|
||||
To support this,
|
||||
Tn archive_entry
|
||||
objects can now be bound to a particular archive when they are created.
|
||||
The automatic character set conversions performed by
|
||||
Tn archive_entry
|
||||
objects when reading and writing filenames, usernames, and other strings
|
||||
will now use an appropriate default character set:
|
||||
.PP
|
||||
If the
|
||||
Tn archive_entry
|
||||
object is bound to an archive, it will use the
|
||||
default character set for that archive.
|
||||
.PP
|
||||
The platform default character encoding (as returned by
|
||||
\fB\%nl_langinfo\fP(\fI\%CHARSET\fP, \fI\%)\fP)
|
||||
will be used if nothing else is specified.
|
||||
.PP
|
||||
Libarchive3 also introduces charset options to many of the archive
|
||||
readers and writers to control the character set that will be used for
|
||||
filenames written in those archives.
|
||||
When possible, this will be set automatically based on information in
|
||||
the archive itself.
|
||||
Combining this with the notion of a default character set for the
|
||||
archive should allow you to configure libarchive to read archives from
|
||||
other platforms and have the filenames and other information
|
||||
transparently converted to the character encoding suitable for your
|
||||
application.
|
||||
.SS Prototype Changes
|
||||
These changes break binary compatibility; libarchive3 has a new shared
|
||||
library version to reflect these changes.
|
||||
The library now uses portable wide types such as
|
||||
Tn int64_t
|
||||
instead of less-portable types such as
|
||||
Tn off_t,
|
||||
Tn gid_t,
|
||||
Tn uid_t,
|
||||
and
|
||||
Tn ino_t.
|
||||
.PP
|
||||
There are a few cases where these changes will affect your source code:
|
||||
.RS 5
|
||||
.IP \(bu
|
||||
In some cases, libarchive's wider types will introduce the possibility
|
||||
of truncation: for example, on a system with a 16-bit
|
||||
Tn uid_t, you risk having uid
|
||||
.RS 4
|
||||
65536
|
||||
.RE
|
||||
be truncated to uid
|
||||
.RS 4
|
||||
0,
|
||||
.RE
|
||||
which can cause serious security problems.
|
||||
.IP \(bu
|
||||
Typedef function pointer types will be incompatible.
|
||||
For example, if you define custom skip callbacks, you may have to use
|
||||
code similar to the following if you want to support building against
|
||||
libarchive2 and libarchive3:
|
||||
.RS 4
|
||||
.nf
|
||||
#if ARCHIVE_VERSION_NUMBER < 3000000
|
||||
typedef off_t myoff_t;
|
||||
#else
|
||||
typedef int64_t myoff_t;
|
||||
#endif
|
||||
myoff_t
|
||||
my_skip_function(struct archive *a, void *v, myoff_t o)
|
||||
{
|
||||
... implementation ...
|
||||
}
|
||||
.RE
|
||||
.RE
|
||||
.PP
|
||||
Affected functions:
|
||||
.PP
|
||||
.RS 5
|
||||
.IP \(bu
|
||||
\fB\%archive_entry_gid\fP(),
|
||||
\fB\%archive_entry_set_gid\fP()
|
||||
.IP \(bu
|
||||
\fB\%archive_entry_uid\fP(),
|
||||
\fB\%archive_entry_set_uid\fP()
|
||||
.IP \(bu
|
||||
\fB\%archive_entry_ino\fP(),
|
||||
\fB\%archive_entry_set_ino\fP()
|
||||
.IP \(bu
|
||||
\fB\%archive_read_data_block\fP(),
|
||||
\fB\%archive_write_data_block\fP()
|
||||
.IP \(bu
|
||||
\fB\%archive_read_disk_gname\fP(),
|
||||
\fB\%archive_read_disk_uname\fP()
|
||||
.IP \(bu
|
||||
\fB\%archive_read_disk_set_gname_lookup\fP(),
|
||||
\fB\%archive_read_disk_set_group_lookup\fP(),
|
||||
\fB\%archive_read_disk_set_uname_lookup\fP(),
|
||||
\fB\%archive_read_disk_set_user_lookup\fP()
|
||||
.IP \(bu
|
||||
\fB\%archive_skip_callback\fP()
|
||||
.IP \(bu
|
||||
\fB\%archive_read_extract_set_skip_file\fP(),
|
||||
\fB\%archive_write_disk_set_skip_file\fP(),
|
||||
\fB\%archive_write_set_skip_file\fP()
|
||||
.IP \(bu
|
||||
\fB\%archive_write_disk_set_group_lookup\fP(),
|
||||
\fB\%archive_write_disk_set_user_lookup\fP()
|
||||
.RE
|
||||
.PP
|
||||
Where these functions or their arguments took or returned
|
||||
Tn gid_t,
|
||||
Tn ino_t,
|
||||
Tn off_t,
|
||||
or
|
||||
Tn uid_t
|
||||
they now take or return
|
||||
Tn int64_t
|
||||
or equivalent.
|
||||
.SS Deprecated Symbols
|
||||
Symbols deprecated in libarchive3 will be removed in libarchive4.
|
||||
These symbols, along with their replacements if any, are listed below:
|
||||
.RS 5
|
||||
.TP
|
||||
\fB\%archive_position_compressed\fP(), \fB\%archive_position_uncompressed\fP()
|
||||
\fB\%archive_filter_bytes\fP()
|
||||
.TP
|
||||
\fB\%archive_compression\fP()
|
||||
\fB\%archive_filter_code\fP()
|
||||
.TP
|
||||
\fB\%archive_compression_name\fP()
|
||||
\fB\%archive_filter_name\fP()
|
||||
.TP
|
||||
\fB\%archive_read_finish\fP(), \fB\%archive_write_finish\fP()
|
||||
\fB\%archive_read_free\fP(),
|
||||
\fB\%archive_write_free\fP()
|
||||
.TP
|
||||
\fB\%archive_read_open_file\fP(), \fB\%archive_write_open_file\fP()
|
||||
\fB\%archive_read_open_filename\fP(),
|
||||
\fB\%archive_write_open_filename\fP()
|
||||
.TP
|
||||
\fB\%archive_read_support_compression_all\fP()
|
||||
\fB\%archive_read_support_filter_all\fP()
|
||||
.TP
|
||||
\fB\%archive_read_support_compression_bzip2\fP()
|
||||
\fB\%archive_read_support_filter_bzip2\fP()
|
||||
.TP
|
||||
\fB\%archive_read_support_compression_compress\fP()
|
||||
\fB\%archive_read_support_filter_compress\fP()
|
||||
.TP
|
||||
\fB\%archive_read_support_compression_gzip\fP()
|
||||
\fB\%archive_read_support_filter_gzip\fP()
|
||||
.TP
|
||||
\fB\%archive_read_support_compression_lzip\fP()
|
||||
\fB\%archive_read_support_filter_lzip\fP()
|
||||
.TP
|
||||
\fB\%archive_read_support_compression_lzma\fP()
|
||||
\fB\%archive_read_support_filter_lzma\fP()
|
||||
.TP
|
||||
\fB\%archive_read_support_compression_none\fP()
|
||||
\fB\%archive_read_support_filter_none\fP()
|
||||
.TP
|
||||
\fB\%archive_read_support_compression_program\fP()
|
||||
\fB\%archive_read_support_filter_program\fP()
|
||||
.TP
|
||||
\fB\%archive_read_support_compression_program_signature\fP()
|
||||
\fB\%archive_read_support_filter_program_signature\fP()
|
||||
.TP
|
||||
\fB\%archive_read_support_compression_rpm\fP()
|
||||
\fB\%archive_read_support_filter_rpm\fP()
|
||||
.TP
|
||||
\fB\%archive_read_support_compression_uu\fP()
|
||||
\fB\%archive_read_support_filter_uu\fP()
|
||||
.TP
|
||||
\fB\%archive_read_support_compression_xz\fP()
|
||||
\fB\%archive_read_support_filter_xz\fP()
|
||||
.TP
|
||||
\fB\%archive_write_set_compression_bzip2\fP()
|
||||
\fB\%archive_write_add_filter_bzip2\fP()
|
||||
.TP
|
||||
\fB\%archive_write_set_compression_compress\fP()
|
||||
\fB\%archive_write_add_filter_compress\fP()
|
||||
.TP
|
||||
\fB\%archive_write_set_compression_gzip\fP()
|
||||
\fB\%archive_write_add_filter_gzip\fP()
|
||||
.TP
|
||||
\fB\%archive_write_set_compression_lzip\fP()
|
||||
\fB\%archive_write_add_filter_lzip\fP()
|
||||
.TP
|
||||
\fB\%archive_write_set_compression_lzma\fP()
|
||||
\fB\%archive_write_add_filter_lzma\fP()
|
||||
.TP
|
||||
\fB\%archive_write_set_compression_none\fP()
|
||||
\fB\%archive_write_add_filter_none\fP()
|
||||
.TP
|
||||
\fB\%archive_write_set_compression_program\fP()
|
||||
\fB\%archive_write_add_filter_program\fP()
|
||||
.TP
|
||||
\fB\%archive_write_set_compression_filter\fP()
|
||||
\fB\%archive_write_add_filter_filter\fP()
|
||||
.RE
|
||||
.SS Removed Symbols
|
||||
These symbols, listed below along with their replacements if any,
|
||||
were deprecated in libarchive2, and are not part of libarchive3.
|
||||
.RS 5
|
||||
.TP
|
||||
\fB\%archive_api_feature\fP()
|
||||
\fB\%archive_version_number\fP()
|
||||
.TP
|
||||
\fB\%archive_api_version\fP()
|
||||
\fB\%archive_version_number\fP()
|
||||
.TP
|
||||
\fB\%archive_version\fP()
|
||||
\fB\%archive_version_string\fP()
|
||||
.TP
|
||||
\fB\%archive_version_stamp\fP()
|
||||
\fB\%archive_version_number\fP()
|
||||
.TP
|
||||
\fB\%archive_read_set_filter_options\fP()
|
||||
\fB\%archive_read_set_options\fP()
|
||||
or
|
||||
\fB\%archive_read_set_filter_option\fP()
|
||||
.TP
|
||||
\fB\%archive_read_set_format_options\fP()
|
||||
\fB\%archive_read_set_options\fP()
|
||||
or
|
||||
\fB\%archive_read_set_format_option\fP()
|
||||
.TP
|
||||
\fB\%archive_write_set_filter_options\fP()
|
||||
\fB\%archive_write_set_options\fP()
|
||||
or
|
||||
\fB\%archive_write_set_filter_option\fP()
|
||||
.TP
|
||||
\fB\%archive_write_set_format_options\fP()
|
||||
\fB\%archive_write_set_options\fP()
|
||||
or
|
||||
\fB\%archive_write_set_format_option\fP()
|
||||
.TP
|
||||
.BR ARCHIVE_API_FEATURE
|
||||
.BR ARCHIVE_VERSION_NUMBER
|
||||
.TP
|
||||
.BR ARCHIVE_API_VERSION
|
||||
.BR ARCHIVE_VERSION_NUMBER
|
||||
.TP
|
||||
.BR ARCHIVE_VERSION_STAMP
|
||||
.BR ARCHIVE_VERSION_NUMBER
|
||||
.TP
|
||||
.BR ARCHIVE_LIBRARY_VERSION
|
||||
.BR ARCHIVE_VERSION_STRING
|
||||
.TP
|
||||
.BR ARCHIVE_COMPRESSION_NONE
|
||||
.BR ARCHIVE_FILTER_NONE
|
||||
.TP
|
||||
.BR ARCHIVE_COMPRESSION_GZIP
|
||||
.BR ARCHIVE_FILTER_GZIP
|
||||
.TP
|
||||
.BR ARCHIVE_COMPRESSION_BZIP2
|
||||
.BR ARCHIVE_FILTER_BZIP2
|
||||
.TP
|
||||
.BR ARCHIVE_COMPRESSION_COMPRESS
|
||||
.BR ARCHIVE_FILTER_COMPRESS
|
||||
.TP
|
||||
.BR ARCHIVE_COMPRESSION_PROGRAM
|
||||
.BR ARCHIVE_FILTER_PROGRAM
|
||||
.TP
|
||||
.BR ARCHIVE_COMPRESSION_LZMA
|
||||
.BR ARCHIVE_FILTER_LZMA
|
||||
.TP
|
||||
.BR ARCHIVE_COMPRESSION_XZ
|
||||
.BR ARCHIVE_FILTER_XZ
|
||||
.TP
|
||||
.BR ARCHIVE_COMPRESSION_UU
|
||||
.BR ARCHIVE_FILTER_UU
|
||||
.TP
|
||||
.BR ARCHIVE_COMPRESSION_RPM
|
||||
.BR ARCHIVE_FILTER_RPM
|
||||
.TP
|
||||
.BR ARCHIVE_COMPRESSION_LZIP
|
||||
.BR ARCHIVE_FILTER_LZIP
|
||||
.TP
|
||||
.BR ARCHIVE_BYTES_PER_RECORD
|
||||
.RS 4
|
||||
512
|
||||
.RE
|
||||
.TP
|
||||
.BR ARCHIVE_DEFAULT_BYTES_PER_BLOCK
|
||||
.RS 4
|
||||
10240
|
||||
.RE
|
||||
.RE
|
||||
.SH SEE ALSO
|
||||
.ad l
|
||||
\fBarchive_read\fP(3),
|
||||
\fBarchive_read_filter\fP(3),
|
||||
\fBarchive_read_format\fP(3),
|
||||
\fBarchive_read_set_options\fP(3),
|
||||
\fBarchive_util\fP(3),
|
||||
\fBarchive_write\fP(3),
|
||||
\fBarchive_write_filter\fP(3),
|
||||
\fBarchive_write_format\fP(3),
|
||||
\fBarchive_write_set_options\fP(3),
|
||||
\fBlibarchive\fP(3)
|
359
dependencies/libarchive-3.4.2/doc/man/libarchive_internals.3
vendored
Normal file
359
dependencies/libarchive-3.4.2/doc/man/libarchive_internals.3
vendored
Normal file
|
@ -0,0 +1,359 @@
|
|||
.TH LIBARCHIVE_INTERNALS 3 "January 26, 2011" ""
|
||||
.SH NAME
|
||||
.ad l
|
||||
\fB\%libarchive_internals\fP
|
||||
\- description of libarchive internal interfaces
|
||||
.SH OVERVIEW
|
||||
.ad l
|
||||
The
|
||||
\fB\%libarchive\fP
|
||||
library provides a flexible interface for reading and writing
|
||||
streaming archive files such as tar and cpio.
|
||||
Internally, it follows a modular layered design that should
|
||||
make it easy to add new archive and compression formats.
|
||||
.SH GENERAL ARCHITECTURE
|
||||
.ad l
|
||||
Externally, libarchive exposes most operations through an
|
||||
opaque, object-style interface.
|
||||
The
|
||||
\fBarchive_entry\fP(3)
|
||||
objects store information about a single filesystem object.
|
||||
The rest of the library provides facilities to write
|
||||
\fBarchive_entry\fP(3)
|
||||
objects to archive files,
|
||||
read them from archive files,
|
||||
and write them to disk.
|
||||
(There are plans to add a facility to read
|
||||
\fBarchive_entry\fP(3)
|
||||
objects from disk as well.)
|
||||
.PP
|
||||
The read and write APIs each have four layers: a public API
|
||||
layer, a format layer that understands the archive file format,
|
||||
a compression layer, and an I/O layer.
|
||||
The I/O layer is completely exposed to clients who can replace
|
||||
it entirely with their own functions.
|
||||
.PP
|
||||
In order to provide as much consistency as possible for clients,
|
||||
some public functions are virtualized.
|
||||
Eventually, it should be possible for clients to open
|
||||
an archive or disk writer, and then use a single set of
|
||||
code to select and write entries, regardless of the target.
|
||||
.SH READ ARCHITECTURE
|
||||
.ad l
|
||||
From the outside, clients use the
|
||||
\fBarchive_read\fP(3)
|
||||
API to manipulate an
|
||||
\fB\%archive\fP
|
||||
object to read entries and bodies from an archive stream.
|
||||
Internally, the
|
||||
\fB\%archive\fP
|
||||
object is cast to an
|
||||
\fB\%archive_read\fP
|
||||
object, which holds all read-specific data.
|
||||
The API has four layers:
|
||||
The lowest layer is the I/O layer.
|
||||
This layer can be overridden by clients, but most clients use
|
||||
the packaged I/O callbacks provided, for example, by
|
||||
\fBarchive_read_open_memory\fP(3),
|
||||
and
|
||||
\fBarchive_read_open_fd\fP(3).
|
||||
The compression layer calls the I/O layer to
|
||||
read bytes and decompresses them for the format layer.
|
||||
The format layer unpacks a stream of uncompressed bytes and
|
||||
creates
|
||||
\fB\%archive_entry\fP
|
||||
objects from the incoming data.
|
||||
The API layer tracks overall state
|
||||
(for example, it prevents clients from reading data before reading a header)
|
||||
and invokes the format and compression layer operations
|
||||
through registered function pointers.
|
||||
In particular, the API layer drives the format-detection process:
|
||||
When opening the archive, it reads an initial block of data
|
||||
and offers it to each registered compression handler.
|
||||
The one with the highest bid is initialized with the first block.
|
||||
Similarly, the format handlers are polled to see which handler
|
||||
is the best for each archive.
|
||||
(Prior to 2.4.0, the format bidders were invoked for each
|
||||
entry, but this design hindered error recovery.)
|
||||
.SS I/O Layer and Client Callbacks
|
||||
The read API goes to some lengths to be nice to clients.
|
||||
As a result, there are few restrictions on the behavior of
|
||||
the client callbacks.
|
||||
.PP
|
||||
The client read callback is expected to provide a block
|
||||
of data on each call.
|
||||
A zero-length return does indicate end of file, but otherwise
|
||||
blocks may be as small as one byte or as large as the entire file.
|
||||
In particular, blocks may be of different sizes.
|
||||
.PP
|
||||
The client skip callback returns the number of bytes actually
|
||||
skipped, which may be much smaller than the skip requested.
|
||||
The only requirement is that the skip not be larger.
|
||||
In particular, clients are allowed to return zero for any
|
||||
skip that they don't want to handle.
|
||||
The skip callback must never be invoked with a negative value.
|
||||
.PP
|
||||
Keep in mind that not all clients are reading from disk:
|
||||
clients reading from networks may provide different-sized
|
||||
blocks on every request and cannot skip at all;
|
||||
advanced clients may use
|
||||
\fBmmap\fP(2)
|
||||
to read the entire file into memory at once and return the
|
||||
entire file to libarchive as a single block;
|
||||
other clients may begin asynchronous I/O operations for the
|
||||
next block on each request.
|
||||
.SS Decompresssion Layer
|
||||
The decompression layer not only handles decompression,
|
||||
it also buffers data so that the format handlers see a
|
||||
much nicer I/O model.
|
||||
The decompression API is a two stage peek/consume model.
|
||||
A read_ahead request specifies a minimum read amount;
|
||||
the decompression layer must provide a pointer to at least
|
||||
that much data.
|
||||
If more data is immediately available, it should return more:
|
||||
the format layer handles bulk data reads by asking for a minimum
|
||||
of one byte and then copying as much data as is available.
|
||||
.PP
|
||||
A subsequent call to the
|
||||
\fB\%consume\fP()
|
||||
function advances the read pointer.
|
||||
Note that data returned from a
|
||||
\fB\%read_ahead\fP()
|
||||
call is guaranteed to remain in place until
|
||||
the next call to
|
||||
\fB\%read_ahead\fP().
|
||||
Intervening calls to
|
||||
\fB\%consume\fP()
|
||||
should not cause the data to move.
|
||||
.PP
|
||||
Skip requests must always be handled exactly.
|
||||
Decompression handlers that cannot seek forward should
|
||||
not register a skip handler;
|
||||
the API layer fills in a generic skip handler that reads and discards data.
|
||||
.PP
|
||||
A decompression handler has a specific lifecycle:
|
||||
.RS 5
|
||||
.TP
|
||||
Registration/Configuration
|
||||
When the client invokes the public support function,
|
||||
the decompression handler invokes the internal
|
||||
\fB\%__archive_read_register_compression\fP()
|
||||
function to provide bid and initialization functions.
|
||||
This function returns
|
||||
\fBNULL\fP
|
||||
on error or else a pointer to a
|
||||
\fBstruct\fP decompressor_t.
|
||||
This structure contains a
|
||||
\fIvoid\fP * config
|
||||
slot that can be used for storing any customization information.
|
||||
.TP
|
||||
Bid
|
||||
The bid function is invoked with a pointer and size of a block of data.
|
||||
The decompressor can access its config data
|
||||
through the
|
||||
\fIdecompressor\fP
|
||||
element of the
|
||||
\fBarchive_read\fP
|
||||
object.
|
||||
The bid function is otherwise stateless.
|
||||
In particular, it must not perform any I/O operations.
|
||||
.PP
|
||||
The value returned by the bid function indicates its suitability
|
||||
for handling this data stream.
|
||||
A bid of zero will ensure that this decompressor is never invoked.
|
||||
Return zero if magic number checks fail.
|
||||
Otherwise, your initial implementation should return the number of bits
|
||||
actually checked.
|
||||
For example, if you verify two full bytes and three bits of another
|
||||
byte, bid 19.
|
||||
Note that the initial block may be very short;
|
||||
be careful to only inspect the data you are given.
|
||||
(The current decompressors require two bytes for correct bidding.)
|
||||
.TP
|
||||
Initialize
|
||||
The winning bidder will have its init function called.
|
||||
This function should initialize the remaining slots of the
|
||||
\fIstruct\fP decompressor_t
|
||||
object pointed to by the
|
||||
\fIdecompressor\fP
|
||||
element of the
|
||||
\fIarchive_read\fP
|
||||
object.
|
||||
In particular, it should allocate any working data it needs
|
||||
in the
|
||||
\fIdata\fP
|
||||
slot of that structure.
|
||||
The init function is called with the block of data that
|
||||
was used for tasting.
|
||||
At this point, the decompressor is responsible for all I/O
|
||||
requests to the client callbacks.
|
||||
The decompressor is free to read more data as and when
|
||||
necessary.
|
||||
.TP
|
||||
Satisfy I/O requests
|
||||
The format handler will invoke the
|
||||
\fIread_ahead\fP,
|
||||
\fIconsume\fP,
|
||||
and
|
||||
\fIskip\fP
|
||||
functions as needed.
|
||||
.TP
|
||||
Finish
|
||||
The finish method is called only once when the archive is closed.
|
||||
It should release anything stored in the
|
||||
\fIdata\fP
|
||||
and
|
||||
\fIconfig\fP
|
||||
slots of the
|
||||
\fIdecompressor\fP
|
||||
object.
|
||||
It should not invoke the client close callback.
|
||||
.RE
|
||||
.SS Format Layer
|
||||
The read formats have a similar lifecycle to the decompression handlers:
|
||||
.RS 5
|
||||
.TP
|
||||
Registration
|
||||
Allocate your private data and initialize your pointers.
|
||||
.TP
|
||||
Bid
|
||||
Formats bid by invoking the
|
||||
\fB\%read_ahead\fP()
|
||||
decompression method but not calling the
|
||||
\fB\%consume\fP()
|
||||
method.
|
||||
This allows each bidder to look ahead in the input stream.
|
||||
Bidders should not look further ahead than necessary, as long
|
||||
look aheads put pressure on the decompression layer to buffer
|
||||
lots of data.
|
||||
Most formats only require a few hundred bytes of look ahead;
|
||||
look aheads of a few kilobytes are reasonable.
|
||||
(The ISO9660 reader sometimes looks ahead by 48k, which
|
||||
should be considered an upper limit.)
|
||||
.TP
|
||||
Read header
|
||||
The header read is usually the most complex part of any format.
|
||||
There are a few strategies worth mentioning:
|
||||
For formats such as tar or cpio, reading and parsing the header is
|
||||
straightforward since headers alternate with data.
|
||||
For formats that store all header data at the beginning of the file,
|
||||
the first header read request may have to read all headers into
|
||||
memory and store that data, sorted by the location of the file
|
||||
data.
|
||||
Subsequent header read requests will skip forward to the
|
||||
beginning of the file data and return the corresponding header.
|
||||
.TP
|
||||
Read Data
|
||||
The read data interface supports sparse files; this requires that
|
||||
each call return a block of data specifying the file offset and
|
||||
size.
|
||||
This may require you to carefully track the location so that you
|
||||
can return accurate file offsets for each read.
|
||||
Remember that the decompressor will return as much data as it has.
|
||||
Generally, you will want to request one byte,
|
||||
examine the return value to see how much data is available, and
|
||||
possibly trim that to the amount you can use.
|
||||
You should invoke consume for each block just before you return it.
|
||||
.TP
|
||||
Skip All Data
|
||||
The skip data call should skip over all file data and trailing padding.
|
||||
This is called automatically by the API layer just before each
|
||||
header read.
|
||||
It is also called in response to the client calling the public
|
||||
\fB\%data_skip\fP()
|
||||
function.
|
||||
.TP
|
||||
Cleanup
|
||||
On cleanup, the format should release all of its allocated memory.
|
||||
.RE
|
||||
.SS API Layer
|
||||
XXX to do XXX
|
||||
.SH WRITE ARCHITECTURE
|
||||
.ad l
|
||||
The write API has a similar set of four layers:
|
||||
an API layer, a format layer, a compression layer, and an I/O layer.
|
||||
The registration here is much simpler because only
|
||||
one format and one compression can be registered at a time.
|
||||
.SS I/O Layer and Client Callbacks
|
||||
XXX To be written XXX
|
||||
.SS Compression Layer
|
||||
XXX To be written XXX
|
||||
.SS Format Layer
|
||||
XXX To be written XXX
|
||||
.SS API Layer
|
||||
XXX To be written XXX
|
||||
.SH WRITE_DISK ARCHITECTURE
|
||||
.ad l
|
||||
The write_disk API is intended to look just like the write API
|
||||
to clients.
|
||||
Since it does not handle multiple formats or compression, it
|
||||
is not layered internally.
|
||||
.SH GENERAL SERVICES
|
||||
.ad l
|
||||
The
|
||||
\fB\%archive_read\fP,
|
||||
\fB\%archive_write\fP,
|
||||
and
|
||||
\fB\%archive_write_disk\fP
|
||||
objects all contain an initial
|
||||
\fB\%archive\fP
|
||||
object which provides common support for a set of standard services.
|
||||
(Recall that ANSI/ISO C90 guarantees that you can cast freely between
|
||||
a pointer to a structure and a pointer to the first element of that
|
||||
structure.)
|
||||
The
|
||||
\fB\%archive\fP
|
||||
object has a magic value that indicates which API this object
|
||||
is associated with,
|
||||
slots for storing error information,
|
||||
and function pointers for virtualized API functions.
|
||||
.SH MISCELLANEOUS NOTES
|
||||
.ad l
|
||||
Connecting existing archiving libraries into libarchive is generally
|
||||
quite difficult.
|
||||
In particular, many existing libraries strongly assume that you
|
||||
are reading from a file; they seek forwards and backwards as necessary
|
||||
to locate various pieces of information.
|
||||
In contrast, libarchive never seeks backwards in its input, which
|
||||
sometimes requires very different approaches.
|
||||
.PP
|
||||
For example, libarchive's ISO9660 support operates very differently
|
||||
from most ISO9660 readers.
|
||||
The libarchive support utilizes a work-queue design that
|
||||
keeps a list of known entries sorted by their location in the input.
|
||||
Whenever libarchive's ISO9660 implementation is asked for the next
|
||||
header, checks this list to find the next item on the disk.
|
||||
Directories are parsed when they are encountered and new
|
||||
items are added to the list.
|
||||
This design relies heavily on the ISO9660 image being optimized so that
|
||||
directories always occur earlier on the disk than the files they
|
||||
describe.
|
||||
.PP
|
||||
Depending on the specific format, such approaches may not be possible.
|
||||
The ZIP format specification, for example, allows archivers to store
|
||||
key information only at the end of the file.
|
||||
In theory, it is possible to create ZIP archives that cannot
|
||||
be read without seeking.
|
||||
Fortunately, such archives are very rare, and libarchive can read
|
||||
most ZIP archives, though it cannot always extract as much information
|
||||
as a dedicated ZIP program.
|
||||
.SH SEE ALSO
|
||||
.ad l
|
||||
\fBarchive_entry\fP(3),
|
||||
\fBarchive_read\fP(3),
|
||||
\fBarchive_write\fP(3),
|
||||
\fBarchive_write_disk\fP(3),
|
||||
\fBlibarchive\fP(3)
|
||||
.SH HISTORY
|
||||
.ad l
|
||||
The
|
||||
\fB\%libarchive\fP
|
||||
library first appeared in
|
||||
FreeBSD 5.3.
|
||||
.SH AUTHORS
|
||||
.ad l
|
||||
-nosplit
|
||||
The
|
||||
\fB\%libarchive\fP
|
||||
library was written by
|
||||
Tim Kientzle \%<kientzle@acm.org.>
|
345
dependencies/libarchive-3.4.2/doc/man/mtree.5
vendored
Normal file
345
dependencies/libarchive-3.4.2/doc/man/mtree.5
vendored
Normal file
|
@ -0,0 +1,345 @@
|
|||
.TH MTREE 5 "September 4, 2013" ""
|
||||
.SH NAME
|
||||
.ad l
|
||||
\fB\%mtree\fP
|
||||
\- format of mtree dir hierarchy files
|
||||
.SH DESCRIPTION
|
||||
.ad l
|
||||
The
|
||||
\fB\%mtree\fP
|
||||
format is a textual format that describes a collection of filesystem objects.
|
||||
Such files are typically used to create or verify directory hierarchies.
|
||||
.SS General Format
|
||||
An
|
||||
\fB\%mtree\fP
|
||||
file consists of a series of lines, each providing information
|
||||
about a single filesystem object.
|
||||
Leading whitespace is always ignored.
|
||||
.PP
|
||||
When encoding file or pathnames, any backslash character or
|
||||
character outside of the 95 printable ASCII characters must be
|
||||
encoded as a backslash followed by three
|
||||
octal digits.
|
||||
When reading mtree files, any appearance of a backslash
|
||||
followed by three octal digits should be converted into the
|
||||
corresponding character.
|
||||
.PP
|
||||
Each line is interpreted independently as one of the following types:
|
||||
.RS 5
|
||||
.TP
|
||||
Blank
|
||||
Blank lines are ignored.
|
||||
.TP
|
||||
Comment
|
||||
Lines beginning with
|
||||
\fB#\fP
|
||||
are ignored.
|
||||
.TP
|
||||
Special
|
||||
Lines beginning with
|
||||
\fB/\fP
|
||||
are special commands that influence
|
||||
the interpretation of later lines.
|
||||
.TP
|
||||
Relative
|
||||
If the first whitespace-delimited word has no
|
||||
\fB/\fP
|
||||
characters,
|
||||
it is the name of a file in the current directory.
|
||||
Any relative entry that describes a directory changes the
|
||||
current directory.
|
||||
.TP
|
||||
dot-dot
|
||||
As a special case, a relative entry with the filename
|
||||
\fI\& ..\fP
|
||||
changes the current directory to the parent directory.
|
||||
Options on dot-dot entries are always ignored.
|
||||
.TP
|
||||
Full
|
||||
If the first whitespace-delimited word has a
|
||||
\fB/\fP
|
||||
character after
|
||||
the first character, it is the pathname of a file relative to the
|
||||
starting directory.
|
||||
There can be multiple full entries describing the same file.
|
||||
.RE
|
||||
.PP
|
||||
Some tools that process
|
||||
\fB\%mtree\fP
|
||||
files may require that multiple lines describing the same file
|
||||
occur consecutively.
|
||||
It is not permitted for the same file to be mentioned using
|
||||
both a relative and a full file specification.
|
||||
.SS Special commands
|
||||
Two special commands are currently defined:
|
||||
.RS 5
|
||||
.TP
|
||||
\fB/set\fP
|
||||
This command defines default values for one or more keywords.
|
||||
It is followed on the same line by one or more whitespace-separated
|
||||
keyword definitions.
|
||||
These definitions apply to all following files that do not specify
|
||||
a value for that keyword.
|
||||
.TP
|
||||
\fB/unset\fP
|
||||
This command removes any default value set by a previous
|
||||
\fB/set\fP
|
||||
command.
|
||||
It is followed on the same line by one or more keywords
|
||||
separated by whitespace.
|
||||
.RE
|
||||
.SS Keywords
|
||||
After the filename, a full or relative entry consists of zero
|
||||
or more whitespace-separated keyword definitions.
|
||||
Each such definition consists of a key from the following
|
||||
list immediately followed by an '=' sign
|
||||
and a value.
|
||||
Software programs reading mtree files should warn about
|
||||
unrecognized keywords.
|
||||
.PP
|
||||
Currently supported keywords are as follows:
|
||||
.RS 5
|
||||
.TP
|
||||
\fBcksum\fP
|
||||
The checksum of the file using the default algorithm specified by
|
||||
the
|
||||
\fBcksum\fP(1)
|
||||
utility.
|
||||
.TP
|
||||
\fBdevice\fP
|
||||
The device number for
|
||||
.B block
|
||||
or
|
||||
.B char
|
||||
file types.
|
||||
The value must be one of the following forms:
|
||||
.RS 5
|
||||
.TP
|
||||
\fIformat\fP, \fImajor\fP, \fIminor\fP Bo, \fIsubunit\fP Bc
|
||||
A device with
|
||||
\fImajor\fP, minor
|
||||
and optional
|
||||
\fIsubunit\fP
|
||||
fields.
|
||||
Their meaning is specified by the operating's system
|
||||
\fIformat\fP.
|
||||
See below for valid formats.
|
||||
.TP
|
||||
\fInumber\fP
|
||||
Opaque number (as stored on the file system).
|
||||
.RE
|
||||
.PP
|
||||
The following values for
|
||||
\fIformat\fP
|
||||
are recognized:
|
||||
.B native ,
|
||||
.B 386bsd ,
|
||||
.B 4bsd ,
|
||||
.B bsdos ,
|
||||
.B freebsd ,
|
||||
.B hpux ,
|
||||
.B isc ,
|
||||
.B linux ,
|
||||
.B netbsd ,
|
||||
.B osf1 ,
|
||||
.B sco ,
|
||||
.B solaris ,
|
||||
.B sunos ,
|
||||
.B svr3 ,
|
||||
.B svr4 ,
|
||||
and
|
||||
.B ultrix .
|
||||
.PP
|
||||
See
|
||||
\fBmknod\fP(8)
|
||||
for more details.
|
||||
.TP
|
||||
\fBcontents\fP
|
||||
The full pathname of a file that holds the contents of this file.
|
||||
.TP
|
||||
\fBflags\fP
|
||||
The file flags as a symbolic name.
|
||||
See
|
||||
\fBchflags\fP(1)
|
||||
for information on these names.
|
||||
If no flags are to be set the string
|
||||
``none''
|
||||
may be used to override the current default.
|
||||
.TP
|
||||
\fBgid\fP
|
||||
The file group as a numeric value.
|
||||
.TP
|
||||
\fBgname\fP
|
||||
The file group as a symbolic name.
|
||||
.TP
|
||||
\fBignore\fP
|
||||
Ignore any file hierarchy below this file.
|
||||
.TP
|
||||
\fBinode\fP
|
||||
The inode number.
|
||||
.TP
|
||||
\fBlink\fP
|
||||
The target of the symbolic link when type=link.
|
||||
.TP
|
||||
\fBmd5\fP
|
||||
The MD5 message digest of the file.
|
||||
.TP
|
||||
\fBmd5digest\fP
|
||||
A synonym for
|
||||
\fBmd5\fP.
|
||||
.TP
|
||||
\fBmode\fP
|
||||
The current file's permissions as a numeric (octal) or symbolic
|
||||
value.
|
||||
.TP
|
||||
\fBnlink\fP
|
||||
The number of hard links the file is expected to have.
|
||||
.TP
|
||||
\fBnochange\fP
|
||||
Make sure this file or directory exists but otherwise ignore all attributes.
|
||||
.TP
|
||||
\fBoptional\fP
|
||||
The file is optional; do not complain about the file if it is not in
|
||||
the file hierarchy.
|
||||
.TP
|
||||
\fBresdevice\fP
|
||||
The
|
||||
``resident''
|
||||
device number of the file, e.g. the ID of the device that
|
||||
contains the file.
|
||||
Its format is the same as the one for
|
||||
\fBdevice\fP.
|
||||
.TP
|
||||
\fBripemd160digest\fP
|
||||
The
|
||||
Tn RIPEMD160
|
||||
message digest of the file.
|
||||
.TP
|
||||
\fBrmd160\fP
|
||||
A synonym for
|
||||
\fBripemd160digest\fP.
|
||||
.TP
|
||||
\fBrmd160digest\fP
|
||||
A synonym for
|
||||
\fBripemd160digest\fP.
|
||||
.TP
|
||||
\fBsha1\fP
|
||||
The
|
||||
Tn FIPS
|
||||
160-1
|
||||
(``Tn SHA-1'')
|
||||
message digest of the file.
|
||||
.TP
|
||||
\fBsha1digest\fP
|
||||
A synonym for
|
||||
\fBsha1\fP.
|
||||
.TP
|
||||
\fBsha256\fP
|
||||
The
|
||||
Tn FIPS
|
||||
180-2
|
||||
(``Tn SHA-256'')
|
||||
message digest of the file.
|
||||
.TP
|
||||
\fBsha256digest\fP
|
||||
A synonym for
|
||||
\fBsha256\fP.
|
||||
.TP
|
||||
\fBsha384\fP
|
||||
The
|
||||
Tn FIPS
|
||||
180-2
|
||||
(``Tn SHA-384'')
|
||||
message digest of the file.
|
||||
.TP
|
||||
\fBsha384digest\fP
|
||||
A synonym for
|
||||
\fBsha384\fP.
|
||||
.TP
|
||||
\fBsha512\fP
|
||||
The
|
||||
Tn FIPS
|
||||
180-2
|
||||
(``Tn SHA-512'')
|
||||
message digest of the file.
|
||||
.TP
|
||||
\fBsha512digest\fP
|
||||
A synonym for
|
||||
\fBsha512\fP.
|
||||
.TP
|
||||
\fBsize\fP
|
||||
The size, in bytes, of the file.
|
||||
.TP
|
||||
\fBtime\fP
|
||||
The last modification time of the file.
|
||||
.TP
|
||||
\fBtype\fP
|
||||
The type of the file; may be set to any one of the following:
|
||||
.PP
|
||||
.RS 5
|
||||
.TP
|
||||
\fBblock\fP
|
||||
block special device
|
||||
.TP
|
||||
\fBchar\fP
|
||||
character special device
|
||||
.TP
|
||||
\fBdir\fP
|
||||
directory
|
||||
.TP
|
||||
\fBfifo\fP
|
||||
fifo
|
||||
.TP
|
||||
\fBfile\fP
|
||||
regular file
|
||||
.TP
|
||||
\fBlink\fP
|
||||
symbolic link
|
||||
.TP
|
||||
\fBsocket\fP
|
||||
socket
|
||||
.RE
|
||||
.TP
|
||||
\fBuid\fP
|
||||
The file owner as a numeric value.
|
||||
.TP
|
||||
\fBuname\fP
|
||||
The file owner as a symbolic name.
|
||||
.RE
|
||||
.SH SEE ALSO
|
||||
.ad l
|
||||
\fBcksum\fP(1),
|
||||
\fBfind\fP(1),
|
||||
\fBmtree\fP(8)
|
||||
.SH HISTORY
|
||||
.ad l
|
||||
The
|
||||
\fB\%mtree\fP
|
||||
utility appeared in
|
||||
Bx 4.3 Reno.
|
||||
The
|
||||
Tn MD5
|
||||
digest capability was added in
|
||||
FreeBSD 2.1,
|
||||
in response to the widespread use of programs which can spoof
|
||||
\fBcksum\fP(1).
|
||||
The
|
||||
Tn SHA-1
|
||||
and
|
||||
Tn RIPEMD160
|
||||
digests were added in
|
||||
FreeBSD 4.0,
|
||||
as new attacks have demonstrated weaknesses in
|
||||
Tn MD5.
|
||||
The
|
||||
Tn SHA-256
|
||||
digest was added in
|
||||
FreeBSD 6.0.
|
||||
Support for file flags was added in
|
||||
FreeBSD 4.0,
|
||||
and mostly comes from
|
||||
NetBSD.
|
||||
The
|
||||
``full''
|
||||
entry format was added by
|
||||
NetBSD.
|
1011
dependencies/libarchive-3.4.2/doc/man/tar.5
vendored
Normal file
1011
dependencies/libarchive-3.4.2/doc/man/tar.5
vendored
Normal file
File diff suppressed because it is too large
Load diff
391
dependencies/libarchive-3.4.2/doc/mdoc2man.awk
vendored
Executable file
391
dependencies/libarchive-3.4.2/doc/mdoc2man.awk
vendored
Executable file
|
@ -0,0 +1,391 @@
|
|||
#!/usr/bin/awk
|
||||
#
|
||||
# Copyright (c) 2003 Peter Stuge <stuge-mdoc2man@cdy.org>
|
||||
#
|
||||
# Permission to use, copy, modify, and distribute this software for any
|
||||
# purpose with or without fee is hereby granted, provided that the above
|
||||
# copyright notice and this permission notice appear in all copies.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
# Dramatically overhauled by Tim Kientzle. This version almost
|
||||
# handles library-style pages with Fn, Ft, etc commands. Still
|
||||
# a lot of problems...
|
||||
|
||||
BEGIN {
|
||||
displaylines = 0
|
||||
trailer = ""
|
||||
out = ""
|
||||
sep = ""
|
||||
nextsep = " "
|
||||
}
|
||||
|
||||
# Add a word with appropriate preceding whitespace
|
||||
# Maintain a short queue of the expected upcoming word separators.
|
||||
function add(str) {
|
||||
out=out sep str
|
||||
sep = nextsep
|
||||
nextsep = " "
|
||||
}
|
||||
|
||||
# Add a word with no following whitespace
|
||||
# Use for opening punctuation such as '('
|
||||
function addopen(str) {
|
||||
add(str)
|
||||
sep = ""
|
||||
}
|
||||
|
||||
# Add a word with no preceding whitespace
|
||||
# Use for closing punctuation such as ')' or '.'
|
||||
function addclose(str) {
|
||||
sep = ""
|
||||
add(str)
|
||||
}
|
||||
|
||||
# Add a word with no space before or after
|
||||
# Use for separating punctuation such as '='
|
||||
function addpunct(str) {
|
||||
sep = ""
|
||||
add(str)
|
||||
sep = ""
|
||||
}
|
||||
|
||||
# Emit the current line so far
|
||||
function endline() {
|
||||
addclose(trailer)
|
||||
trailer = ""
|
||||
if(length(out) > 0) {
|
||||
print out
|
||||
out=""
|
||||
}
|
||||
if(displaylines > 0) {
|
||||
displaylines = displaylines - 1
|
||||
if (displaylines == 0)
|
||||
dispend()
|
||||
}
|
||||
# First word on next line has no preceding whitespace
|
||||
sep = ""
|
||||
}
|
||||
|
||||
function linecmd(cmd) {
|
||||
endline()
|
||||
add(cmd)
|
||||
endline()
|
||||
}
|
||||
|
||||
function breakline() {
|
||||
linecmd(".br")
|
||||
}
|
||||
|
||||
# Start an indented display
|
||||
function dispstart() {
|
||||
linecmd(".RS 4")
|
||||
}
|
||||
|
||||
# End an indented display
|
||||
function dispend() {
|
||||
linecmd(".RE")
|
||||
}
|
||||
|
||||
# Collect rest of input line
|
||||
function wtail() {
|
||||
retval=""
|
||||
while(w<nwords) {
|
||||
if(length(retval))
|
||||
retval=retval " "
|
||||
retval=retval words[++w]
|
||||
}
|
||||
return retval
|
||||
}
|
||||
|
||||
function splitwords(l, dest, n, o, w) {
|
||||
n = 1
|
||||
delete dest
|
||||
while (length(l) > 0) {
|
||||
sub("^[ \t]*", "", l)
|
||||
if (match(l, "^\"")) {
|
||||
l = substr(l, 2)
|
||||
o = index(l, "\"")
|
||||
if (o > 0) {
|
||||
w = substr(l, 1, o-1)
|
||||
l = substr(l, o+1)
|
||||
dest[n++] = w
|
||||
} else {
|
||||
dest[n++] = l
|
||||
l = ""
|
||||
}
|
||||
} else {
|
||||
o = match(l, "[ \t]")
|
||||
if (o > 0) {
|
||||
w = substr(l, 1, o-1)
|
||||
l = substr(l, o+1)
|
||||
dest[n++] = w
|
||||
} else {
|
||||
dest[n++] = l
|
||||
l = ""
|
||||
}
|
||||
}
|
||||
}
|
||||
return n-1
|
||||
}
|
||||
|
||||
! /^\./ {
|
||||
out = $0
|
||||
endline()
|
||||
next
|
||||
}
|
||||
|
||||
/^\.\\"/ { next }
|
||||
|
||||
{
|
||||
sub("^\\.","")
|
||||
nwords=splitwords($0, words)
|
||||
# TODO: Instead of iterating 'w' over the array, have a separate
|
||||
# function that returns 'next word' and use that. This will allow
|
||||
# proper handling of double-quoted arguments as well.
|
||||
for(w=1;w<=nwords;w++) {
|
||||
if(match(words[w],"^Li$")) { # Literal; rest of line is unformatted
|
||||
dispstart()
|
||||
displaylines = 1
|
||||
} else if(match(words[w],"^Dl$")) { # Display literal
|
||||
dispstart()
|
||||
displaylines = 1
|
||||
} else if(match(words[w],"^Bd$")) { # Begin display
|
||||
if(match(words[w+1],"-literal")) {
|
||||
dispstart()
|
||||
linecmd(".nf")
|
||||
displaylines=10000
|
||||
w=nwords
|
||||
}
|
||||
} else if(match(words[w],"^Ed$")) { # End display
|
||||
displaylines = 0
|
||||
dispend()
|
||||
} else if(match(words[w],"^Ns$")) { # Suppress space after next word
|
||||
nextsep = ""
|
||||
} else if(match(words[w],"^No$")) { # Normal text
|
||||
add(words[++w])
|
||||
} else if(match(words[w],"^Dq$")) { # Quote
|
||||
addopen("``")
|
||||
add(words[++w])
|
||||
while(w<nwords&&!match(words[w+1],"^[\\.,]"))
|
||||
add(words[++w])
|
||||
addclose("''")
|
||||
} else if(match(words[w],"^Do$")) {
|
||||
addopen("``")
|
||||
} else if(match(words[w],"^Dc$")) {
|
||||
addclose("''")
|
||||
} else if(match(words[w],"^Oo$")) {
|
||||
addopen("[")
|
||||
} else if(match(words[w],"^Oc$")) {
|
||||
addclose("]")
|
||||
} else if(match(words[w],"^Ao$")) {
|
||||
addopen("<")
|
||||
} else if(match(words[w],"^Ac$")) {
|
||||
addclose(">")
|
||||
} else if(match(words[w],"^Dd$")) {
|
||||
date=wtail()
|
||||
next
|
||||
} else if(match(words[w],"^Dt$")) {
|
||||
id=wtail()
|
||||
next
|
||||
} else if(match(words[w],"^Ox$")) {
|
||||
add("OpenBSD")
|
||||
} else if(match(words[w],"^Fx$")) {
|
||||
add("FreeBSD")
|
||||
} else if(match(words[w],"^Nx$")) {
|
||||
add("NetBSD")
|
||||
} else if(match(words[w],"^St$")) {
|
||||
if (match(words[w+1], "^-p1003.1$")) {
|
||||
w++
|
||||
add("IEEE Std 1003.1 (``POSIX.1'')")
|
||||
} else if(match(words[w+1], "^-p1003.1-96$")) {
|
||||
w++
|
||||
add("ISO/IEC 9945-1:1996 (``POSIX.1'')")
|
||||
} else if(match(words[w+1], "^-p1003.1-88$")) {
|
||||
w++
|
||||
add("IEEE Std 1003.1-1988 (``POSIX.1'')")
|
||||
} else if(match(words[w+1], "^-p1003.1-2001$")) {
|
||||
w++
|
||||
add("IEEE Std 1003.1-2001 (``POSIX.1'')")
|
||||
} else if(match(words[w+1], "^-susv2$")) {
|
||||
w++
|
||||
add("Version 2 of the Single UNIX Specification (``SUSv2'')")
|
||||
}
|
||||
} else if(match(words[w],"^Ex$")) {
|
||||
if (match(words[w+1], "^-std$")) {
|
||||
w++
|
||||
add("The \\fB" name "\\fP utility exits 0 on success, and >0 if an error occurs.")
|
||||
}
|
||||
} else if(match(words[w],"^Os$")) {
|
||||
add(".TH " id " \"" date "\" \"" wtail() "\"")
|
||||
} else if(match(words[w],"^Sh$")) {
|
||||
section=wtail()
|
||||
add(".SH " section)
|
||||
linecmd(".ad l")
|
||||
} else if(match(words[w],"^Xr$")) {
|
||||
add("\\fB" words[++w] "\\fP(" words[++w] ")" words[++w])
|
||||
} else if(match(words[w],"^Nm$")) {
|
||||
if(match(section,"SYNOPSIS"))
|
||||
breakline()
|
||||
if(w >= nwords)
|
||||
n=name
|
||||
else if (match(words[w+1], "^[A-Z][a-z]$"))
|
||||
n=name
|
||||
else if (match(words[w+1], "^[.,;:]$"))
|
||||
n=name
|
||||
else {
|
||||
n=words[++w]
|
||||
if(!length(name))
|
||||
name=n
|
||||
}
|
||||
if(!length(n))
|
||||
n=name
|
||||
add("\\fB\\%" n "\\fP")
|
||||
} else if(match(words[w],"^Nd$")) {
|
||||
add("\\- " wtail())
|
||||
} else if(match(words[w],"^Fl$")) {
|
||||
add("\\fB\\-" words[++w] "\\fP")
|
||||
} else if(match(words[w],"^Ar$")) {
|
||||
addopen("\\fI")
|
||||
if(w==nwords)
|
||||
add("file ...\\fP")
|
||||
else
|
||||
add(words[++w] "\\fP")
|
||||
} else if(match(words[w],"^Cm$")) {
|
||||
add("\\fB" words[++w] "\\fP")
|
||||
} else if(match(words[w],"^Op$")) {
|
||||
addopen("[")
|
||||
option=1
|
||||
trailer="]" trailer
|
||||
} else if(match(words[w],"^Pp$")) {
|
||||
linecmd(".PP")
|
||||
} else if(match(words[w],"^An$")) {
|
||||
endline()
|
||||
} else if(match(words[w],"^Ss$")) {
|
||||
add(".SS")
|
||||
} else if(match(words[w],"^Ft$")) {
|
||||
if (match(section, "SYNOPSIS")) {
|
||||
breakline()
|
||||
}
|
||||
add("\\fI" wtail() "\\fP")
|
||||
if (match(section, "SYNOPSIS")) {
|
||||
breakline()
|
||||
}
|
||||
} else if(match(words[w],"^Fn$")) {
|
||||
++w
|
||||
F = "\\fB\\%" words[w] "\\fP("
|
||||
Fsep = ""
|
||||
while(w<nwords) {
|
||||
++w
|
||||
if (match(words[w], "^[.,:]$")) {
|
||||
--w
|
||||
break
|
||||
}
|
||||
gsub(" ", "\\ ", words[w])
|
||||
F = F Fsep "\\fI\\%" words[w] "\\fP"
|
||||
Fsep = ", "
|
||||
}
|
||||
add(F ")")
|
||||
if (match(section, "SYNOPSIS")) {
|
||||
addclose(";")
|
||||
}
|
||||
} else if(match(words[w],"^Fo$")) {
|
||||
w++
|
||||
F = "\\fB\\%" words[w] "\\fP("
|
||||
Fsep = ""
|
||||
} else if(match(words[w],"^Fa$")) {
|
||||
w++
|
||||
gsub(" ", "\\ ", words[w])
|
||||
F = F Fsep "\\fI\\%" words[w] "\\fP"
|
||||
Fsep = ", "
|
||||
} else if(match(words[w],"^Fc$")) {
|
||||
add(F ")")
|
||||
if (match(section, "SYNOPSIS")) {
|
||||
addclose(";")
|
||||
}
|
||||
} else if(match(words[w],"^Va$")) {
|
||||
w++
|
||||
add("\\fI" words[w] "\\fP")
|
||||
} else if(match(words[w],"^In$")) {
|
||||
w++
|
||||
add("\\fB#include <" words[w] ">\\fP")
|
||||
} else if(match(words[w],"^Pa$")) {
|
||||
addopen("\\fI")
|
||||
w++
|
||||
if(match(words[w],"^\\."))
|
||||
add("\\&")
|
||||
add(words[w] "\\fP")
|
||||
} else if(match(words[w],"^Dv$")) {
|
||||
add(".BR")
|
||||
} else if(match(words[w],"^Em|Ev$")) {
|
||||
add(".IR")
|
||||
} else if(match(words[w],"^Pq$")) {
|
||||
addopen("(")
|
||||
trailer=")" trailer
|
||||
} else if(match(words[w],"^Aq$")) {
|
||||
addopen("\\%<")
|
||||
trailer=">" trailer
|
||||
} else if(match(words[w],"^Brq$")) {
|
||||
addopen("{")
|
||||
trailer="}" trailer
|
||||
} else if(match(words[w],"^S[xy]$")) {
|
||||
add(".B " wtail())
|
||||
} else if(match(words[w],"^Ic$")) {
|
||||
add("\\fB")
|
||||
trailer="\\fP" trailer
|
||||
} else if(match(words[w],"^Bl$")) {
|
||||
oldoptlist=optlist
|
||||
linecmd(".RS 5")
|
||||
if(match(words[w+1],"-bullet"))
|
||||
optlist=1
|
||||
else if(match(words[w+1],"-enum")) {
|
||||
optlist=2
|
||||
enum=0
|
||||
} else if(match(words[w+1],"-tag"))
|
||||
optlist=3
|
||||
else if(match(words[w+1],"-item"))
|
||||
optlist=4
|
||||
else if(match(words[w+1],"-bullet"))
|
||||
optlist=1
|
||||
w=nwords
|
||||
} else if(match(words[w],"^El$")) {
|
||||
linecmd(".RE")
|
||||
optlist=oldoptlist
|
||||
} else if(match(words[w],"^It$")&&optlist) {
|
||||
if(optlist==1)
|
||||
add(".IP \\(bu")
|
||||
else if(optlist==2)
|
||||
add(".IP " ++enum ".")
|
||||
else if(optlist==3) {
|
||||
add(".TP")
|
||||
endline()
|
||||
if(match(words[w+1],"^Pa$|^Ev$")) {
|
||||
add(".B")
|
||||
w++
|
||||
}
|
||||
} else if(optlist==4)
|
||||
add(".IP")
|
||||
} else if(match(words[w],"^Xo$")) {
|
||||
# TODO: Figure out how to handle this
|
||||
} else if(match(words[w],"^Xc$")) {
|
||||
# TODO: Figure out how to handle this
|
||||
} else if(match(words[w],"^[=]$")) {
|
||||
addpunct(words[w])
|
||||
} else if(match(words[w],"^[[{(]$")) {
|
||||
addopen(words[w])
|
||||
} else if(match(words[w],"^[\\])}.,;:]$")) {
|
||||
addclose(words[w])
|
||||
} else {
|
||||
add(words[w])
|
||||
}
|
||||
}
|
||||
if(match(out,"^\\.[^a-zA-Z]"))
|
||||
sub("^\\.","",out)
|
||||
endline()
|
||||
}
|
488
dependencies/libarchive-3.4.2/doc/mdoc2wiki.awk
vendored
Executable file
488
dependencies/libarchive-3.4.2/doc/mdoc2wiki.awk
vendored
Executable file
|
@ -0,0 +1,488 @@
|
|||
#!/usr/bin/awk
|
||||
#
|
||||
# Copyright (c) 2003 Peter Stuge <stuge-mdoc2man@cdy.org>
|
||||
#
|
||||
# Permission to use, copy, modify, and distribute this software for any
|
||||
# purpose with or without fee is hereby granted, provided that the above
|
||||
# copyright notice and this permission notice appear in all copies.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
# Dramatically overhauled by Tim Kientzle. This version almost
|
||||
# handles library-style pages with Fn, Ft, etc commands. Still
|
||||
# a lot of problems...
|
||||
|
||||
BEGIN {
|
||||
displaylines = 0
|
||||
listdepth = 0
|
||||
trailer = ""
|
||||
out = ""
|
||||
sep = ""
|
||||
nextsep = " "
|
||||
spaces = " "
|
||||
|
||||
NORMAL_STATE = 0
|
||||
PRETAG_STATE = 1
|
||||
STATE = NORMAL_STATE
|
||||
}
|
||||
|
||||
# Add a word with appropriate preceding whitespace
|
||||
# Maintain a short queue of the expected upcoming word separators.
|
||||
function add(str) {
|
||||
out=out sep str
|
||||
sep = nextsep
|
||||
nextsep = " "
|
||||
}
|
||||
|
||||
# Add a word with no following whitespace
|
||||
# Use for opening punctuation such as '('
|
||||
function addopen(str) {
|
||||
add(str)
|
||||
sep = ""
|
||||
}
|
||||
|
||||
# Add a word with no preceding whitespace
|
||||
# Use for closing punctuation such as ')' or '.'
|
||||
function addclose(str) {
|
||||
sep = ""
|
||||
add(str)
|
||||
}
|
||||
|
||||
# Add a word with no space before or after
|
||||
# Use for separating punctuation such as '='
|
||||
function addpunct(str) {
|
||||
sep = ""
|
||||
add(str)
|
||||
sep = ""
|
||||
}
|
||||
|
||||
# Emit the current line so far
|
||||
function endline() {
|
||||
addclose(trailer)
|
||||
trailer = ""
|
||||
if(length(out) > 0) {
|
||||
if (STATE == PRETAG_STATE) {
|
||||
print out
|
||||
} else {
|
||||
print out " "
|
||||
}
|
||||
out=""
|
||||
}
|
||||
if(displaylines > 0) {
|
||||
displaylines = displaylines - 1
|
||||
if (displaylines == 0)
|
||||
dispend()
|
||||
}
|
||||
# First word on next line has no preceding whitespace
|
||||
sep = ""
|
||||
}
|
||||
|
||||
function linecmd(cmd) {
|
||||
endline()
|
||||
add(cmd)
|
||||
endline()
|
||||
}
|
||||
|
||||
function breakline() {
|
||||
linecmd("<br>")
|
||||
}
|
||||
|
||||
function crossref(name, sect, other) {
|
||||
if (name == "cpio" && sect == 1) {
|
||||
n = "ManPageBsdcpio1"
|
||||
} else if (name == "cpio" && sect == 5) {
|
||||
n = "ManPageCpio5"
|
||||
} else if (name == "mtree" && sect == 5) {
|
||||
n = "ManPageMtree5"
|
||||
} else if (name == "tar" && sect == 1) {
|
||||
n = "ManPageBsdtar1"
|
||||
} else if (name == "tar" && sect == 5) {
|
||||
n = "ManPageTar5"
|
||||
} else if (!match(name, "^archive") && !match(name, "^libarchive")) {
|
||||
n = name "(" sect ")|http://www.freebsd.org/cgi/man.cgi?query=" name "&sektion=" sect
|
||||
} else {
|
||||
n = "ManPage"
|
||||
numbits = split(name, namebits, "[_-]")
|
||||
for (i = 1; i <= numbits; ++i) {
|
||||
p = namebits[i]
|
||||
n = n toupper(substr(p, 0, 1)) substr(p, 2)
|
||||
}
|
||||
n = n sect
|
||||
}
|
||||
n = "[[" n "]]"
|
||||
if (length other > 0)
|
||||
n = n other
|
||||
return n
|
||||
}
|
||||
|
||||
# Start an indented display
|
||||
function dispstart() {
|
||||
endline()
|
||||
print "```text"
|
||||
}
|
||||
|
||||
# End an indented display
|
||||
function dispend() {
|
||||
endline()
|
||||
print "```"
|
||||
}
|
||||
|
||||
# Collect rest of input line
|
||||
function wtail() {
|
||||
retval=""
|
||||
while(w<nwords) {
|
||||
if(length(retval))
|
||||
retval=retval " "
|
||||
retval=retval words[++w]
|
||||
}
|
||||
return retval
|
||||
}
|
||||
|
||||
function splitwords(l, dest, n, o, w) {
|
||||
n = 1
|
||||
delete dest
|
||||
while (length(l) > 0) {
|
||||
sub("^[ \t]*", "", l)
|
||||
if (match(l, "^\"")) {
|
||||
l = substr(l, 2)
|
||||
o = index(l, "\"")
|
||||
if (o > 0) {
|
||||
w = substr(l, 1, o-1)
|
||||
l = substr(l, o+1)
|
||||
dest[n++] = w
|
||||
} else {
|
||||
dest[n++] = l
|
||||
l = ""
|
||||
}
|
||||
} else {
|
||||
o = match(l, "[ \t]")
|
||||
if (o > 0) {
|
||||
w = substr(l, 1, o-1)
|
||||
l = substr(l, o+1)
|
||||
dest[n++] = w
|
||||
} else {
|
||||
dest[n++] = l
|
||||
l = ""
|
||||
}
|
||||
}
|
||||
}
|
||||
return n-1
|
||||
}
|
||||
|
||||
! /^\./ {
|
||||
out = $0
|
||||
endline()
|
||||
next
|
||||
}
|
||||
|
||||
/^\.\\"/ { next }
|
||||
|
||||
{
|
||||
gsub("\\\\e", "\\")
|
||||
sub("^\\.","")
|
||||
nwords=splitwords($0, words)
|
||||
# TODO: Instead of iterating 'w' over the array, have a separate
|
||||
# function that returns 'next word' and use that. This will allow
|
||||
# proper handling of double-quoted arguments as well.
|
||||
for(w=1;w<=nwords;w++) {
|
||||
if(match(words[w],"^Li$")) { # Literal; rest of line is unformatted
|
||||
dispstart()
|
||||
displaylines = 1
|
||||
} else if(match(words[w],"^Dl$")) { # Display literal
|
||||
dispstart()
|
||||
displaylines = 1
|
||||
} else if(match(words[w],"^Bd$")) { # Begin display
|
||||
STATE = PRETAG_STATE
|
||||
if(match(words[w+1],"-literal")) {
|
||||
dispstart()
|
||||
displaylines=10000
|
||||
w=nwords
|
||||
}
|
||||
} else if(match(words[w],"^Ed$")) { # End display
|
||||
displaylines = 0
|
||||
dispend()
|
||||
STATE = NORMAL_STATE
|
||||
} else if(match(words[w],"^Ns$")) { # Suppress space before next word
|
||||
sep=""
|
||||
} else if(match(words[w],"^No$")) { # Normal text
|
||||
add(words[++w])
|
||||
} else if(match(words[w],"^Dq$")) { # Quote
|
||||
addopen("\"")
|
||||
add(words[++w])
|
||||
while(w<nwords&&!match(words[w+1],"^[\\.,]"))
|
||||
add(words[++w])
|
||||
addclose("\"")
|
||||
} else if(match(words[w],"^Do$")) {
|
||||
addopen("\"")
|
||||
} else if(match(words[w],"^Dc$")) {
|
||||
addclose("\"")
|
||||
} else if(match(words[w],"^Oo$")) {
|
||||
addopen("<nowiki>[</nowiki>")
|
||||
} else if(match(words[w],"^Oc$")) {
|
||||
addclose("<nowiki>]</nowiki>")
|
||||
} else if(match(words[w],"^Ao$")) {
|
||||
addopen("<")
|
||||
} else if(match(words[w],"^Ac$")) {
|
||||
addclose(">")
|
||||
} else if(match(words[w],"^Dd$")) {
|
||||
date=wtail()
|
||||
next
|
||||
} else if(match(words[w],"^Dt$")) {
|
||||
id=words[++w] "(" words[++w] ")"
|
||||
next
|
||||
} else if(match(words[w],"^Ox$")) {
|
||||
add("OpenBSD")
|
||||
} else if(match(words[w],"^Fx$")) {
|
||||
add("FreeBSD")
|
||||
} else if(match(words[w],"^Bx$")) {
|
||||
add("BSD")
|
||||
} else if(match(words[w],"^Nx$")) {
|
||||
add("NetBSD")
|
||||
} else if(match(words[w],"^St$")) {
|
||||
if (match(words[w+1], "^-p1003.1$")) {
|
||||
w++
|
||||
add("<nowiki>IEEE Std 1003.1 (``POSIX.1'')</nowiki>")
|
||||
} else if(match(words[w+1], "^-p1003.1-96$")) {
|
||||
w++
|
||||
add("<nowiki>ISO/IEC 9945-1:1996 (``POSIX.1'')</nowiki>")
|
||||
} else if(match(words[w+1], "^-p1003.1-88$")) {
|
||||
w++
|
||||
add("<nowiki>IEEE Std 1003.1-1988 (``POSIX.1'')</nowiki>")
|
||||
} else if(match(words[w+1], "^-p1003.1-2001$")) {
|
||||
w++
|
||||
add("<nowiki>IEEE Std 1003.1-2001 (``POSIX.1'')</nowiki>")
|
||||
} else if(match(words[w+1], "^-susv2$")) {
|
||||
w++
|
||||
add("<nowiki>Version 2 of the Single UNIX Specification (``SUSv2'')</nowiki>")
|
||||
}
|
||||
} else if(match(words[w],"^Ex$")) {
|
||||
if (match(words[w+1], "^-std$")) {
|
||||
w++
|
||||
add("The '''" name "''' utility exits 0 on success, and >0 if an error occurs.")
|
||||
}
|
||||
} else if(match(words[w],"^Os$")) {
|
||||
add(id " manual page")
|
||||
} else if(match(words[w],"^Sh$")) {
|
||||
section=wtail()
|
||||
linecmd("== " section " ==")
|
||||
} else if(match(words[w],"^Xr$")) {
|
||||
add(crossref(words[w+1], words[w+2], words[w+3]))
|
||||
w = w + 3
|
||||
} else if(match(words[w],"^Nm$")) {
|
||||
if(match(section,"SYNOPSIS"))
|
||||
breakline()
|
||||
if(w >= nwords)
|
||||
n=name
|
||||
else if (match(words[w+1], "^[A-Z][a-z]$"))
|
||||
n=name
|
||||
else if (match(words[w+1], "^[.,;:]$"))
|
||||
n=name
|
||||
else {
|
||||
n=words[++w]
|
||||
if(!length(name))
|
||||
name=n
|
||||
}
|
||||
if(!length(n))
|
||||
n=name
|
||||
if (displaylines == 0)
|
||||
add("'''" n "'''")
|
||||
else
|
||||
add(n)
|
||||
} else if(match(words[w],"^Nd$")) {
|
||||
add("- " wtail())
|
||||
} else if(match(words[w],"^Fl$")) {
|
||||
addopen("-")
|
||||
} else if(match(words[w],"^Ar$")) {
|
||||
if(w==nwords)
|
||||
add("''file ...''")
|
||||
else {
|
||||
++w
|
||||
gsub("<", "\\<", words[w])
|
||||
if (displaylines > 0)
|
||||
add(words[w])
|
||||
else
|
||||
add("''" words[w] "''")
|
||||
}
|
||||
} else if(match(words[w],"^Cm$")) {
|
||||
++w
|
||||
if (displaylines == 0) {
|
||||
add("'''" words[w] "'''")
|
||||
} else
|
||||
add(words[w])
|
||||
} else if(match(words[w],"^Op$")) {
|
||||
addopen("<nowiki>[</nowiki>")
|
||||
option=1
|
||||
trailer="<nowiki>]</nowiki>" trailer
|
||||
} else if(match(words[w],"^Pp$")) {
|
||||
++w
|
||||
endline()
|
||||
print ""
|
||||
} else if(match(words[w],"^An$")) {
|
||||
if (match(words[w+1],"-nosplit"))
|
||||
++w
|
||||
endline()
|
||||
} else if(match(words[w],"^Ss$")) {
|
||||
add("===")
|
||||
trailer="==="
|
||||
} else if(match(words[w],"^Ft$")) {
|
||||
if (match(section, "SYNOPSIS")) {
|
||||
breakline()
|
||||
}
|
||||
l = wtail()
|
||||
add("''" l "''")
|
||||
if (match(section, "SYNOPSIS")) {
|
||||
breakline()
|
||||
}
|
||||
} else if(match(words[w],"^Fn$")) {
|
||||
++w
|
||||
F = "'''" words[w] "'''("
|
||||
Fsep = ""
|
||||
while(w<nwords) {
|
||||
++w
|
||||
if (match(words[w], "^[.,:]$")) {
|
||||
--w
|
||||
break
|
||||
}
|
||||
F = F Fsep "''" words[w] "''"
|
||||
Fsep = ", "
|
||||
}
|
||||
add(F ")")
|
||||
if (match(section, "SYNOPSIS")) {
|
||||
addclose(";")
|
||||
}
|
||||
} else if(match(words[w],"^Fo$")) {
|
||||
w++
|
||||
F = "'''" words[w] "'''("
|
||||
Fsep = ""
|
||||
} else if(match(words[w],"^Fa$")) {
|
||||
w++
|
||||
F = F Fsep "''" words[w] "''"
|
||||
Fsep = ", "
|
||||
} else if(match(words[w],"^Fc$")) {
|
||||
add(F ")")
|
||||
if (match(section, "SYNOPSIS")) {
|
||||
addclose(";")
|
||||
}
|
||||
} else if(match(words[w],"^Va$")) {
|
||||
w++
|
||||
add("''" words[w] "''")
|
||||
} else if(match(words[w],"^In$")) {
|
||||
w++
|
||||
add("'''<nowiki>#include <" words[w] "></nowiki>'''")
|
||||
} else if(match(words[w],"^Pa$")) {
|
||||
w++
|
||||
# if(match(words[w],"^\\."))
|
||||
# add("\\&")
|
||||
if (displaylines == 0)
|
||||
add("''" words[w] "''")
|
||||
else
|
||||
add(words[w])
|
||||
} else if(match(words[w],"^Dv$")) {
|
||||
linecmd()
|
||||
} else if(match(words[w],"^Em|Ev$")) {
|
||||
add(".IR")
|
||||
} else if(match(words[w],"^Pq$")) {
|
||||
addopen("(")
|
||||
trailer=")" trailer
|
||||
} else if(match(words[w],"^Aq$")) {
|
||||
addopen(" <")
|
||||
trailer=">" trailer
|
||||
} else if(match(words[w],"^Brq$")) {
|
||||
addopen("<nowiki>{</nowiki>")
|
||||
trailer="<nowiki>}</nowiki>" trailer
|
||||
} else if(match(words[w],"^S[xy]$")) {
|
||||
add(".B " wtail())
|
||||
} else if(match(words[w],"^Tn$")) {
|
||||
n=wtail()
|
||||
add("'''" n "'''")
|
||||
} else if(match(words[w],"^Ic$")) {
|
||||
add("''")
|
||||
trailer="''" trailer
|
||||
} else if(match(words[w],"^Bl$")) {
|
||||
++listdepth
|
||||
listnext[listdepth]=""
|
||||
if(match(words[w+1],"-bullet")) {
|
||||
optlist[listdepth]=1
|
||||
addopen("<ul>")
|
||||
listclose[listdepth]="</ul>"
|
||||
} else if(match(words[w+1],"-enum")) {
|
||||
optlist[listdepth]=2
|
||||
enum=0
|
||||
addopen("<ol>")
|
||||
listclose[listdepth]="</ol>"
|
||||
} else if(match(words[w+1],"-tag")) {
|
||||
optlist[listdepth]=3
|
||||
addopen("<dl>")
|
||||
listclose[listdepth]="</dl>"
|
||||
} else if(match(words[w+1],"-item")) {
|
||||
optlist[listdepth]=4
|
||||
addopen("<ul>")
|
||||
listclose[listdepth]="</ul>"
|
||||
}
|
||||
w=nwords
|
||||
} else if(match(words[w],"^El$")) {
|
||||
addclose(listnext[listdepth])
|
||||
addclose(listclose[listdepth])
|
||||
listclose[listdepth]=""
|
||||
listdepth--
|
||||
} else if(match(words[w],"^It$")) {
|
||||
addclose(listnext[listdepth])
|
||||
if(optlist[listdepth]==1) {
|
||||
addpunct("<li>")
|
||||
listnext[listdepth] = "</li>"
|
||||
} else if(optlist[listdepth]==2) {
|
||||
addpunct("<li>")
|
||||
listnext[listdepth] = "</li>"
|
||||
} else if(optlist[listdepth]==3) {
|
||||
addpunct("<dt>")
|
||||
listnext[listdepth] = "</dt>"
|
||||
if(match(words[w+1],"^Xo$")) {
|
||||
# Suppress trailer
|
||||
w++
|
||||
} else if(match(words[w+1],"^Pa$|^Ev$")) {
|
||||
addopen("'''")
|
||||
w++
|
||||
add(words[++w] "'''")
|
||||
trailer = listnext[listdepth] "<dd>" trailer
|
||||
listnext[listdepth] = "</dd>"
|
||||
} else {
|
||||
trailer = listnext[listdepth] "<dd>" trailer
|
||||
listnext[listdepth] = "</dd>"
|
||||
}
|
||||
} else if(optlist[listdepth]==4) {
|
||||
addpunct("<li>")
|
||||
listnext[listdepth] = "</li>"
|
||||
}
|
||||
} else if(match(words[w], "^Vt$")) {
|
||||
w++
|
||||
add("''" words[w] "''")
|
||||
} else if(match(words[w],"^Xo$")) {
|
||||
# TODO: Figure out how to handle this
|
||||
} else if(match(words[w],"^Xc$")) {
|
||||
# TODO: Figure out how to handle this
|
||||
if (optlist[listdepth] == 3) {
|
||||
addclose(listnext[listdepth])
|
||||
addopen("<dd>")
|
||||
listnext[listdepth] = "</dd>"
|
||||
}
|
||||
} else if(match(words[w],"^[=]$")) {
|
||||
addpunct(words[w])
|
||||
} else if(match(words[w],"^[[{(]$")) {
|
||||
addopen(words[w])
|
||||
} else if(match(words[w],"^[\\])}.,;:]$")) {
|
||||
addclose(words[w])
|
||||
} else {
|
||||
sub("\\\\&", "", words[w])
|
||||
add(words[w])
|
||||
}
|
||||
}
|
||||
if(match(out,"^\\.[^a-zA-Z]"))
|
||||
sub("^\\.","",out)
|
||||
endline()
|
||||
}
|
2
dependencies/libarchive-3.4.2/doc/pdf/.ignore_me
vendored
Normal file
2
dependencies/libarchive-3.4.2/doc/pdf/.ignore_me
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
*** PLEASE DO NOT DELETE THIS FILE! ***
|
||||
This file is used to track an otherwise empty directory in git.
|
133
dependencies/libarchive-3.4.2/doc/pdf/Makefile
vendored
Normal file
133
dependencies/libarchive-3.4.2/doc/pdf/Makefile
vendored
Normal file
|
@ -0,0 +1,133 @@
|
|||
|
||||
default: all
|
||||
|
||||
|
||||
archive_entry.3.pdf: ../../libarchive/archive_entry.3
|
||||
groff -mdoc -T ps ../../libarchive/archive_entry.3 | ps2pdf - - > archive_entry.3.pdf
|
||||
|
||||
archive_entry_acl.3.pdf: ../../libarchive/archive_entry_acl.3
|
||||
groff -mdoc -T ps ../../libarchive/archive_entry_acl.3 | ps2pdf - - > archive_entry_acl.3.pdf
|
||||
|
||||
archive_entry_linkify.3.pdf: ../../libarchive/archive_entry_linkify.3
|
||||
groff -mdoc -T ps ../../libarchive/archive_entry_linkify.3 | ps2pdf - - > archive_entry_linkify.3.pdf
|
||||
|
||||
archive_entry_misc.3.pdf: ../../libarchive/archive_entry_misc.3
|
||||
groff -mdoc -T ps ../../libarchive/archive_entry_misc.3 | ps2pdf - - > archive_entry_misc.3.pdf
|
||||
|
||||
archive_entry_paths.3.pdf: ../../libarchive/archive_entry_paths.3
|
||||
groff -mdoc -T ps ../../libarchive/archive_entry_paths.3 | ps2pdf - - > archive_entry_paths.3.pdf
|
||||
|
||||
archive_entry_perms.3.pdf: ../../libarchive/archive_entry_perms.3
|
||||
groff -mdoc -T ps ../../libarchive/archive_entry_perms.3 | ps2pdf - - > archive_entry_perms.3.pdf
|
||||
|
||||
archive_entry_stat.3.pdf: ../../libarchive/archive_entry_stat.3
|
||||
groff -mdoc -T ps ../../libarchive/archive_entry_stat.3 | ps2pdf - - > archive_entry_stat.3.pdf
|
||||
|
||||
archive_entry_time.3.pdf: ../../libarchive/archive_entry_time.3
|
||||
groff -mdoc -T ps ../../libarchive/archive_entry_time.3 | ps2pdf - - > archive_entry_time.3.pdf
|
||||
|
||||
archive_read.3.pdf: ../../libarchive/archive_read.3
|
||||
groff -mdoc -T ps ../../libarchive/archive_read.3 | ps2pdf - - > archive_read.3.pdf
|
||||
|
||||
archive_read_add_passphrase.3.pdf: ../../libarchive/archive_read_add_passphrase.3
|
||||
groff -mdoc -T ps ../../libarchive/archive_read_add_passphrase.3 | ps2pdf - - > archive_read_add_passphrase.3.pdf
|
||||
|
||||
archive_read_data.3.pdf: ../../libarchive/archive_read_data.3
|
||||
groff -mdoc -T ps ../../libarchive/archive_read_data.3 | ps2pdf - - > archive_read_data.3.pdf
|
||||
|
||||
archive_read_disk.3.pdf: ../../libarchive/archive_read_disk.3
|
||||
groff -mdoc -T ps ../../libarchive/archive_read_disk.3 | ps2pdf - - > archive_read_disk.3.pdf
|
||||
|
||||
archive_read_extract.3.pdf: ../../libarchive/archive_read_extract.3
|
||||
groff -mdoc -T ps ../../libarchive/archive_read_extract.3 | ps2pdf - - > archive_read_extract.3.pdf
|
||||
|
||||
archive_read_filter.3.pdf: ../../libarchive/archive_read_filter.3
|
||||
groff -mdoc -T ps ../../libarchive/archive_read_filter.3 | ps2pdf - - > archive_read_filter.3.pdf
|
||||
|
||||
archive_read_format.3.pdf: ../../libarchive/archive_read_format.3
|
||||
groff -mdoc -T ps ../../libarchive/archive_read_format.3 | ps2pdf - - > archive_read_format.3.pdf
|
||||
|
||||
archive_read_free.3.pdf: ../../libarchive/archive_read_free.3
|
||||
groff -mdoc -T ps ../../libarchive/archive_read_free.3 | ps2pdf - - > archive_read_free.3.pdf
|
||||
|
||||
archive_read_header.3.pdf: ../../libarchive/archive_read_header.3
|
||||
groff -mdoc -T ps ../../libarchive/archive_read_header.3 | ps2pdf - - > archive_read_header.3.pdf
|
||||
|
||||
archive_read_new.3.pdf: ../../libarchive/archive_read_new.3
|
||||
groff -mdoc -T ps ../../libarchive/archive_read_new.3 | ps2pdf - - > archive_read_new.3.pdf
|
||||
|
||||
archive_read_open.3.pdf: ../../libarchive/archive_read_open.3
|
||||
groff -mdoc -T ps ../../libarchive/archive_read_open.3 | ps2pdf - - > archive_read_open.3.pdf
|
||||
|
||||
archive_read_set_options.3.pdf: ../../libarchive/archive_read_set_options.3
|
||||
groff -mdoc -T ps ../../libarchive/archive_read_set_options.3 | ps2pdf - - > archive_read_set_options.3.pdf
|
||||
|
||||
archive_util.3.pdf: ../../libarchive/archive_util.3
|
||||
groff -mdoc -T ps ../../libarchive/archive_util.3 | ps2pdf - - > archive_util.3.pdf
|
||||
|
||||
archive_write.3.pdf: ../../libarchive/archive_write.3
|
||||
groff -mdoc -T ps ../../libarchive/archive_write.3 | ps2pdf - - > archive_write.3.pdf
|
||||
|
||||
archive_write_blocksize.3.pdf: ../../libarchive/archive_write_blocksize.3
|
||||
groff -mdoc -T ps ../../libarchive/archive_write_blocksize.3 | ps2pdf - - > archive_write_blocksize.3.pdf
|
||||
|
||||
archive_write_data.3.pdf: ../../libarchive/archive_write_data.3
|
||||
groff -mdoc -T ps ../../libarchive/archive_write_data.3 | ps2pdf - - > archive_write_data.3.pdf
|
||||
|
||||
archive_write_disk.3.pdf: ../../libarchive/archive_write_disk.3
|
||||
groff -mdoc -T ps ../../libarchive/archive_write_disk.3 | ps2pdf - - > archive_write_disk.3.pdf
|
||||
|
||||
archive_write_filter.3.pdf: ../../libarchive/archive_write_filter.3
|
||||
groff -mdoc -T ps ../../libarchive/archive_write_filter.3 | ps2pdf - - > archive_write_filter.3.pdf
|
||||
|
||||
archive_write_finish_entry.3.pdf: ../../libarchive/archive_write_finish_entry.3
|
||||
groff -mdoc -T ps ../../libarchive/archive_write_finish_entry.3 | ps2pdf - - > archive_write_finish_entry.3.pdf
|
||||
|
||||
archive_write_format.3.pdf: ../../libarchive/archive_write_format.3
|
||||
groff -mdoc -T ps ../../libarchive/archive_write_format.3 | ps2pdf - - > archive_write_format.3.pdf
|
||||
|
||||
archive_write_free.3.pdf: ../../libarchive/archive_write_free.3
|
||||
groff -mdoc -T ps ../../libarchive/archive_write_free.3 | ps2pdf - - > archive_write_free.3.pdf
|
||||
|
||||
archive_write_header.3.pdf: ../../libarchive/archive_write_header.3
|
||||
groff -mdoc -T ps ../../libarchive/archive_write_header.3 | ps2pdf - - > archive_write_header.3.pdf
|
||||
|
||||
archive_write_new.3.pdf: ../../libarchive/archive_write_new.3
|
||||
groff -mdoc -T ps ../../libarchive/archive_write_new.3 | ps2pdf - - > archive_write_new.3.pdf
|
||||
|
||||
archive_write_open.3.pdf: ../../libarchive/archive_write_open.3
|
||||
groff -mdoc -T ps ../../libarchive/archive_write_open.3 | ps2pdf - - > archive_write_open.3.pdf
|
||||
|
||||
archive_write_set_options.3.pdf: ../../libarchive/archive_write_set_options.3
|
||||
groff -mdoc -T ps ../../libarchive/archive_write_set_options.3 | ps2pdf - - > archive_write_set_options.3.pdf
|
||||
|
||||
archive_write_set_passphrase.3.pdf: ../../libarchive/archive_write_set_passphrase.3
|
||||
groff -mdoc -T ps ../../libarchive/archive_write_set_passphrase.3 | ps2pdf - - > archive_write_set_passphrase.3.pdf
|
||||
|
||||
cpio.5.pdf: ../../libarchive/cpio.5
|
||||
groff -mdoc -T ps ../../libarchive/cpio.5 | ps2pdf - - > cpio.5.pdf
|
||||
|
||||
libarchive-formats.5.pdf: ../../libarchive/libarchive-formats.5
|
||||
groff -mdoc -T ps ../../libarchive/libarchive-formats.5 | ps2pdf - - > libarchive-formats.5.pdf
|
||||
|
||||
libarchive.3.pdf: ../../libarchive/libarchive.3
|
||||
groff -mdoc -T ps ../../libarchive/libarchive.3 | ps2pdf - - > libarchive.3.pdf
|
||||
|
||||
libarchive_changes.3.pdf: ../../libarchive/libarchive_changes.3
|
||||
groff -mdoc -T ps ../../libarchive/libarchive_changes.3 | ps2pdf - - > libarchive_changes.3.pdf
|
||||
|
||||
libarchive_internals.3.pdf: ../../libarchive/libarchive_internals.3
|
||||
groff -mdoc -T ps ../../libarchive/libarchive_internals.3 | ps2pdf - - > libarchive_internals.3.pdf
|
||||
|
||||
mtree.5.pdf: ../../libarchive/mtree.5
|
||||
groff -mdoc -T ps ../../libarchive/mtree.5 | ps2pdf - - > mtree.5.pdf
|
||||
|
||||
tar.5.pdf: ../../libarchive/tar.5
|
||||
groff -mdoc -T ps ../../libarchive/tar.5 | ps2pdf - - > tar.5.pdf
|
||||
|
||||
bsdtar.1.pdf: ../../tar/bsdtar.1
|
||||
groff -mdoc -T ps ../../tar/bsdtar.1 | ps2pdf - - > bsdtar.1.pdf
|
||||
|
||||
bsdcpio.1.pdf: ../../cpio/bsdcpio.1
|
||||
groff -mdoc -T ps ../../cpio/bsdcpio.1 | ps2pdf - - > bsdcpio.1.pdf
|
||||
all: archive_entry.3.pdf archive_entry_acl.3.pdf archive_entry_linkify.3.pdf archive_entry_misc.3.pdf archive_entry_paths.3.pdf archive_entry_perms.3.pdf archive_entry_stat.3.pdf archive_entry_time.3.pdf archive_read.3.pdf archive_read_add_passphrase.3.pdf archive_read_data.3.pdf archive_read_disk.3.pdf archive_read_extract.3.pdf archive_read_filter.3.pdf archive_read_format.3.pdf archive_read_free.3.pdf archive_read_header.3.pdf archive_read_new.3.pdf archive_read_open.3.pdf archive_read_set_options.3.pdf archive_util.3.pdf archive_write.3.pdf archive_write_blocksize.3.pdf archive_write_data.3.pdf archive_write_disk.3.pdf archive_write_filter.3.pdf archive_write_finish_entry.3.pdf archive_write_format.3.pdf archive_write_free.3.pdf archive_write_header.3.pdf archive_write_new.3.pdf archive_write_open.3.pdf archive_write_set_options.3.pdf archive_write_set_passphrase.3.pdf cpio.5.pdf libarchive-formats.5.pdf libarchive.3.pdf libarchive_changes.3.pdf libarchive_internals.3.pdf mtree.5.pdf tar.5.pdf bsdtar.1.pdf bsdcpio.1.pdf
|
BIN
dependencies/libarchive-3.4.2/doc/pdf/archive_entry.3.pdf
vendored
Normal file
BIN
dependencies/libarchive-3.4.2/doc/pdf/archive_entry.3.pdf
vendored
Normal file
Binary file not shown.
BIN
dependencies/libarchive-3.4.2/doc/pdf/archive_entry_acl.3.pdf
vendored
Normal file
BIN
dependencies/libarchive-3.4.2/doc/pdf/archive_entry_acl.3.pdf
vendored
Normal file
Binary file not shown.
BIN
dependencies/libarchive-3.4.2/doc/pdf/archive_entry_linkify.3.pdf
vendored
Normal file
BIN
dependencies/libarchive-3.4.2/doc/pdf/archive_entry_linkify.3.pdf
vendored
Normal file
Binary file not shown.
BIN
dependencies/libarchive-3.4.2/doc/pdf/archive_entry_misc.3.pdf
vendored
Normal file
BIN
dependencies/libarchive-3.4.2/doc/pdf/archive_entry_misc.3.pdf
vendored
Normal file
Binary file not shown.
BIN
dependencies/libarchive-3.4.2/doc/pdf/archive_entry_paths.3.pdf
vendored
Normal file
BIN
dependencies/libarchive-3.4.2/doc/pdf/archive_entry_paths.3.pdf
vendored
Normal file
Binary file not shown.
BIN
dependencies/libarchive-3.4.2/doc/pdf/archive_entry_perms.3.pdf
vendored
Normal file
BIN
dependencies/libarchive-3.4.2/doc/pdf/archive_entry_perms.3.pdf
vendored
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue