diff options
author | kientzle <kientzle@FreeBSD.org> | 2004-02-09 23:22:54 +0000 |
---|---|---|
committer | kientzle <kientzle@FreeBSD.org> | 2004-02-09 23:22:54 +0000 |
commit | af9413b539628b0758b4af66ffbb879fba49cc6d (patch) | |
tree | 20e1d80fd0a1d288a08af1696ee258bcd08f41d0 /lib/libarchive/archive_entry.3 | |
parent | 6b6e533f7e91602d4ccb3353351eb9f816c2daf2 (diff) | |
download | FreeBSD-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.3 | 218 |
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 |