summaryrefslogtreecommitdiffstats
path: root/lib/libarchive/archive_entry.3
diff options
context:
space:
mode:
authorkientzle <kientzle@FreeBSD.org>2004-02-09 23:22:54 +0000
committerkientzle <kientzle@FreeBSD.org>2004-02-09 23:22:54 +0000
commitaf9413b539628b0758b4af66ffbb879fba49cc6d (patch)
tree20e1d80fd0a1d288a08af1696ee258bcd08f41d0 /lib/libarchive/archive_entry.3
parent6b6e533f7e91602d4ccb3353351eb9f816c2daf2 (diff)
downloadFreeBSD-src-af9413b539628b0758b4af66ffbb879fba49cc6d.zip
FreeBSD-src-af9413b539628b0758b4af66ffbb879fba49cc6d.tar.gz
Initial import of libarchive.
What it is: A library for reading and writing various streaming archive formats, especially tar and cpio. Being a library, it should be easy to incorporate into pkg_* tools, sysinstall, and any other place that needs to read or write such archives. Features: * Full automatic detection of both compression and archive format. * Extensible internal architecture to make it easy to add new formats. * Support for "pax interchange format," a new POSIX-standard tar format that eliminates essentially all of the restrictions of historic formats. * BSD license Thanks to: jkh for pushing me to start this work, gordon for encouraging me to commit it, bde for answering endless style questions, and many others for feedback and encouragement. Status: Pretty good overall, though there are still a few rough edges and the library could always use more testing. Feedback eagerly solicited.
Diffstat (limited to 'lib/libarchive/archive_entry.3')
-rw-r--r--lib/libarchive/archive_entry.3218
1 files changed, 218 insertions, 0 deletions
diff --git a/lib/libarchive/archive_entry.3 b/lib/libarchive/archive_entry.3
new file mode 100644
index 0000000..c247b23
--- /dev/null
+++ b/lib/libarchive/archive_entry.3
@@ -0,0 +1,218 @@
+.\" Copyright (c) 2003-2004 Tim Kientzle
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD$
+.\"
+.Dd December 15, 2003
+.Dt archive_entry 3
+.Os
+.Sh NAME
+.Nm archive_entry_clear
+.Nm archive_entry_clone
+.Nm archive_entry_copy_stat
+.Nm archive_entry_dup
+.Nm archive_entry_free
+.Nm archive_entry_gname
+.Nm archive_entry_hardlink
+.Nm archive_entry_new
+.Nm archive_entry_pathname
+.Nm archive_entry_set_devmajor
+.Nm archive_entry_set_devminor
+.Nm archive_entry_set_gid
+.Nm archive_entry_set_gname
+.Nm archive_entry_set_hardlink
+.Nm archive_entry_set_mode
+.Nm archive_entry_set_pathname
+.Nm archive_entry_set_symlink
+.Nm archive_entry_set_tartype
+.Nm archive_entry_set_uid
+.Nm archive_entry_set_uname
+.Nm archive_entry_size
+.Nm archive_entry_stat
+.Nm archive_entry_symlink
+.Nm archive_entry_tartype
+.Nm archive_entry_uname
+.Nd functions for manipulating archive entry descriptions
+.Sh SYNOPSIS
+.In archive_entry.h
+.Ft void
+.Fn archive_entry_clear "struct archive_entry *"
+.Ft struct archive_entry *
+.Fn archive_entry_clone "struct archive_entry *"
+.Ft void
+.Fn archive_entry_copy_stat "struct archive_entry *" "struct stat *"
+.Ft struct archive_entry *
+.Fn archive_entry_dup "struct archive_entry *"
+.Ft void
+.Fn archive_entry_free "struct archive_entry *"
+.Ft const char *
+.Fn archive_entry_gname "struct archive_entry *"
+.Ft const char *
+.Fn archive_entry_hardlink "struct archive_entry *"
+.Ft struct archive_entry *
+.Fn archive_entry_new "void"
+.Ft const char *
+.Fn archive_entry_pathname "struct archive_entry *"
+.Ft void
+.Fn archive_entry_set_devmajor "struct archive_entry *" "dev_t"
+.Ft void
+.Fn archive_entry_set_devminor "struct archive_entry *" "dev_t"
+.Ft void
+.Fn archive_entry_set_gid "struct archive_entry *" "gid_t"
+.Ft void
+.Fn archive_entry_set_gname "struct archive_entry *" "const char *"
+.Ft void
+.Fn archive_entry_set_hardlink "struct archive_entry *" "const char *"
+.Ft void
+.Fn archive_entry_set_mode "struct archive_entry *" "mode_t"
+.Ft void
+.Fn archive_entry_set_pathname "struct archive_entry *" "const char *"
+.Ft void
+.Fn archive_entry_set_symlink "struct archive_entry *" "const char *"
+.Ft void
+.Fn archive_entry_set_tartype "struct archive_entry *" "int"
+.Ft void
+.Fn archive_entry_set_uid "struct archive_entry *" "uid_t"
+.Ft void
+.Fn archive_entry_set_uname "struct archive_entry *" "const char *"
+.Ft int64_t
+.Fn archive_entry_size "struct archive_entry *"
+.Ft const struct stat *
+.Fn archive_entry_stat "struct archive_entry *"
+.Ft const char *
+.Fn archive_entry_symlink "struct archive_entry *"
+.Ft int
+.Fn archive_entry_tartype "struct archive_entry *"
+.Ft const char *
+.Fn archive_entry_uname "struct archive_entry *"
+.Sh DESCRIPTION
+These functions create and manipulate data objects that
+represent entries within an archive.
+You can think of a
+.Tn struct archive_entry
+as a
+.Tn struct stat
+on steroids: it includes everything from
+.Tn struct stat
+plus associated pathname, textual group and user names, etc.
+These objects are used by
+.Xr libarchive 3
+to represent the metadata associated with a particular
+entry in an archive.
+.Bl -tag -compact -width indent
+.It Fn archive_entry_clear
+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.
+.It Fn archive_entry_clone
+A deep copy operation; all text fields are duplicated.
+.It Fn archive_entry_copy_stat
+Copies the contents of the provided
+.Tn struct stat
+into the
+.Tn struct archive_entry
+object.
+.It Fn archive_entry_dup
+A shallow copy; text fields are not duplicated.
+.It Fn archive_entry_free
+Releases the
+.Tn struct archive_entry
+object.
+.It Fn archive_entry_gname
+Returns a pointer to the textual group name.
+.It Fn archive_entry_hardlink
+If this function returns non-NULL, then this object represents
+a hardlink to another filesystem object.
+The contents contain the pathname of the object.
+.It Fn archive_entry_new
+Allocate and return a blank
+.Tn struct archive_entry
+object.
+.It Fn archive_entry_pathname
+Returns a pointer to the pathname.
+.It Fn archive_entry_set_devmajor
+Sets the device major number (only valid for objects representing
+block and character devices).
+.It Fn archive_entry_set_devminor
+Sets the device minor number (only valid for objects representing
+block and character devices).
+.It Fn archive_entry_set_gid
+Sets the group ID for the object.
+.It Fn archive_entry_set_gname
+Sets a pointer to the textual group name.
+Note that the name itself is not copied.
+.It Fn archive_entry_set_hardlink
+Sets the hardlink property; see
+.Fn archive_entry_hardlink
+above.
+.It Fn archive_entry_set_mode
+Sets the file mode.
+.It Fn archive_entry_set_pathname
+Sets a pointer to the pathname.
+Note that the pathname text is not copied.
+.It Fn archive_entry_set_symlink
+Sets a pointer to the contents of a symbolic link.
+Note that the pathname text is not copied.
+.It Fn archive_entry_set_tartype
+Sets the value to be used in a tar-format header
+for this entry.
+Client code should generally not set this; if it
+is left unset, the library will automatically determine
+an appropriate value.
+.It Fn archive_entry_set_uid
+Set the user ID for the object.
+.It Fn archive_entry_set_uname
+Sets a pointer to the textual user name.
+Note that the name itself is not copied.
+.It Fn archive_entry_size
+Returns the size of the object on disk in bytes.
+.It Fn archive_entry_stat
+Returns a pointer to a populated
+.Tn struct stat .
+.It Fn archive_entry_symlink
+Returns a pointer to the symlink contents.
+.It Fn archive_entry_tartype
+Returns the value used in a tar-format header.
+Not generally useful to clients.
+.It Fn archive_entry_uname
+Returns a pointer to the textual user name.
+.El
+.\" .Sh EXAMPLE
+.\" .Sh RETURN VALUES
+.\" .Sh ERRORS
+.Sh SEE ALSO
+.Xr archive 3
+.Sh HISTORY
+The
+.Nm libarchive
+library first appeared in
+.Fx 5.3 .
+.Sh AUTHORS
+.An -nosplit
+The
+.Nm libarchive
+library was written by
+.An Tim Kientzle Aq kientzle@acm.org .
+.Sh BUGS
OpenPOWER on IntegriCloud