diff options
Diffstat (limited to 'libarchive/libarchive-2.4.17/doc/man/archive_entry.3')
| -rw-r--r-- | libarchive/libarchive-2.4.17/doc/man/archive_entry.3 | 647 |
1 files changed, 647 insertions, 0 deletions
diff --git a/libarchive/libarchive-2.4.17/doc/man/archive_entry.3 b/libarchive/libarchive-2.4.17/doc/man/archive_entry.3 new file mode 100644 index 0000000..a3548c2 --- /dev/null +++ b/libarchive/libarchive-2.4.17/doc/man/archive_entry.3 @@ -0,0 +1,647 @@ +.TH archive_entry 3 "December 15, 2003" "" +.SH NAME +\fBarchive_entry_acl_add_entry\fP, +\fBarchive_entry_acl_add_entry_w\fP, +\fBarchive_entry_acl_clear\fP, +\fBarchive_entry_acl_count\fP, +\fBarchive_entry_acl_next\fP, +\fBarchive_entry_acl_next_w\fP, +\fBarchive_entry_acl_reset\fP, +\fBarchive_entry_acl_text_w\fP, +\fBarchive_entry_atime\fP, +\fBarchive_entry_atime_nsec\fP, +\fBarchive_entry_clear\fP, +\fBarchive_entry_clone\fP, +\fBarchive_entry_copy_fflags_text_w\fP, +\fBarchive_entry_copy_gname\fP, +\fBarchive_entry_copy_gname_w\fP, +\fBarchive_entry_copy_hardlink\fP, +\fBarchive_entry_copy_hardlink_w\fP, +\fBarchive_entry_copy_pathname_w\fP, +\fBarchive_entry_copy_stat\fP, +\fBarchive_entry_copy_symlink\fP, +\fBarchive_entry_copy_symlink_w\fP, +\fBarchive_entry_copy_uname\fP, +\fBarchive_entry_copy_uname_w\fP, +\fBarchive_entry_dev\fP, +\fBarchive_entry_devmajor\fP, +\fBarchive_entry_devminor\fP, +\fBarchive_entry_filetype\fP, +\fBarchive_entry_fflags\fP, +\fBarchive_entry_fflags_text\fP, +\fBarchive_entry_free\fP, +\fBarchive_entry_gid\fP, +\fBarchive_entry_gname\fP, +\fBarchive_entry_hardlink\fP, +\fBarchive_entry_ino\fP, +\fBarchive_entry_mode\fP, +\fBarchive_entry_mtime\fP, +\fBarchive_entry_mtime_nsec\fP, +\fBarchive_entry_nlink\fP, +\fBarchive_entry_new\fP, +\fBarchive_entry_pathname\fP, +\fBarchive_entry_pathname_w\fP, +\fBarchive_entry_rdev\fP, +\fBarchive_entry_rdevmajor\fP, +\fBarchive_entry_rdevminor\fP, +\fBarchive_entry_set_atime\fP, +\fBarchive_entry_set_ctime\fP, +\fBarchive_entry_set_dev\fP, +\fBarchive_entry_set_devmajor\fP, +\fBarchive_entry_set_devminor\fP, +\fBarchive_entry_set_filetype\fP, +\fBarchive_entry_set_fflags\fP, +\fBarchive_entry_set_gid\fP, +\fBarchive_entry_set_gname\fP, +\fBarchive_entry_set_hardlink\fP, +\fBarchive_entry_set_link\fP, +\fBarchive_entry_set_mode\fP, +\fBarchive_entry_set_mtime\fP, +\fBarchive_entry_set_pathname\fP, +\fBarchive_entry_set_rdevmajor\fP, +\fBarchive_entry_set_rdevminor\fP, +\fBarchive_entry_set_size\fP, +\fBarchive_entry_set_symlink\fP, +\fBarchive_entry_set_uid\fP, +\fBarchive_entry_set_uname\fP, +\fBarchive_entry_size\fP, +\fBarchive_entry_stat\fP, +\fBarchive_entry_symlink\fP, +\fBarchive_entry_uid\fP, +\fBarchive_entry_uname\fP +\- functions for manipulating archive entry descriptions +.SH SYNOPSIS +\fB#include <archive_entry.h>\fP +.br +\fIvoid\fP +.RE +.nh +\fBarchive_entry_acl_add_entry\fP +.hy +("struct archive_entry *" "int type" "int permset" "int tag" "int qual" "const char *name"); +\fIvoid\fP +.RE +.nh +\fBarchive_entry_acl_add_entry_w\fP +.hy +("struct archive_entry *" "int type" "int permset" "int tag" "int qual" "const wchar_t *name"); +\fIvoid\fP +.RE +.nh +\fBarchive_entry_acl_clear\fP +.hy +("struct archive_entry *"); +\fIint\fP +.RE +.nh +\fBarchive_entry_acl_count\fP +.hy +("struct archive_entry *" "int type"); +\fIint\fP +.RE +.nh +\fBarchive_entry_acl_next\fP +.hy +("struct archive_entry *" "int want_type" "int *type" "int *permset" "int *tag" "int *qual" "const char **name"); +\fIint\fP +.RE +.nh +\fBarchive_entry_acl_next_w\fP +.hy +("struct archive_entry *" "int want_type" "int *type" "int *permset" "int *tag" "int *qual" "const wchar_t **name"); +\fIint\fP +.RE +.nh +\fBarchive_entry_acl_reset\fP +.hy +("struct archive_entry *" "int want_type"); +\fIconst wchar_t *\fP +.RE +.nh +\fBarchive_entry_acl_text_w\fP +.hy +("struct archive_entry *" "int flags"); +\fItime_t\fP +.RE +.nh +\fBarchive_entry_atime\fP +.hy +("struct archive_entry *"); +\fIlong\fP +.RE +.nh +\fBarchive_entry_atime_nsec\fP +.hy +("struct archive_entry *"); +\fI"struct archive_entry *"\fP +.RE +.nh +\fBarchive_entry_clear\fP +.hy +("struct archive_entry *"); +\fIstruct archive_entry *\fP +.RE +.nh +\fBarchive_entry_clone\fP +.hy +("struct archive_entry *"); +\fIconst wchar_t *\fP +.RE +.nh +\fBarchive_entry_copy_fflags_text_w\fP +.hy +("struct archive_entry *" "const wchar_t *"); +\fIvoid\fP +.RE +.nh +\fBarchive_entry_copy_gname\fP +.hy +("struct archive_entry *" "const char *"); +\fIvoid\fP +.RE +.nh +\fBarchive_entry_copy_gname_w\fP +.hy +("struct archive_entry *" "const wchar_t *"); +\fIvoid\fP +.RE +.nh +\fBarchive_entry_copy_hardlink\fP +.hy +("struct archive_entry *" "const char *"); +\fIvoid\fP +.RE +.nh +\fBarchive_entry_copy_hardlink_w\fP +.hy +("struct archive_entry *" "const wchar_t *"); +\fIvoid\fP +.RE +.nh +\fBarchive_entry_copy_pathname_w\fP +.hy +("struct archive_entry *" "const wchar_t *"); +\fIvoid\fP +.RE +.nh +\fBarchive_entry_copy_stat\fP +.hy +("struct archive_entry *" "const struct stat *"); +\fIvoid\fP +.RE +.nh +\fBarchive_entry_copy_symlink\fP +.hy +("struct archive_entry *" "const char *"); +\fIvoid\fP +.RE +.nh +\fBarchive_entry_copy_symlink_w\fP +.hy +("struct archive_entry *" "const wchar_t *"); +\fIvoid\fP +.RE +.nh +\fBarchive_entry_copy_uname\fP +.hy +("struct archive_entry *" "const char *"); +\fIvoid\fP +.RE +.nh +\fBarchive_entry_copy_uname_w\fP +.hy +("struct archive_entry *" "const wchar_t *"); +\fIdev_t\fP +.RE +.nh +\fBarchive_entry_dev\fP +.hy +("struct archive_entry *"); +\fIdev_t\fP +.RE +.nh +\fBarchive_entry_devmajor\fP +.hy +("struct archive_entry *"); +\fIdev_t\fP +.RE +.nh +\fBarchive_entry_devminor\fP +.hy +("struct archive_entry *"); +\fImode_t\fP +.RE +.nh +\fBarchive_entry_filetype\fP +.hy +("struct archive_entry *"); +\fIvoid\fP +.RE +.nh +\fBarchive_entry_fflags\fP +.hy +("struct archive_entry *" "unsigned long *set" "unsigned long *clear"); +\fIconst char *\fP +.RE +.nh +\fBarchive_entry_fflags_text\fP +.hy +("struct archive_entry *"); +\fIvoid\fP +.RE +.nh +\fBarchive_entry_free\fP +.hy +("struct archive_entry *"); +\fIconst char *\fP +.RE +.nh +\fBarchive_entry_gname\fP +.hy +("struct archive_entry *"); +\fIconst char *\fP +.RE +.nh +\fBarchive_entry_hardlink\fP +.hy +("struct archive_entry *"); +\fIino_t\fP +.RE +.nh +\fBarchive_entry_ino\fP +.hy +("struct archive_entry *"); +\fImode_t\fP +.RE +.nh +\fBarchive_entry_mode\fP +.hy +("struct archive_entry *"); +\fItime_t\fP +.RE +.nh +\fBarchive_entry_mtime\fP +.hy +("struct archive_entry *"); +\fIlong\fP +.RE +.nh +\fBarchive_entry_mtime_nsec\fP +.hy +("struct archive_entry *"); +\fIunsigned int\fP +.RE +.nh +\fBarchive_entry_nlink\fP +.hy +("struct archive_entry *"); +\fIstruct archive_entry *\fP +.RE +.nh +\fBarchive_entry_new\fP +.hy +("void"); +\fIconst char *\fP +.RE +.nh +\fBarchive_entry_pathname\fP +.hy +("struct archive_entry *"); +\fIconst wchar_t *\fP +.RE +.nh +\fBarchive_entry_pathname_w\fP +.hy +("struct archive_entry *"); +\fIdev_t\fP +.RE +.nh +\fBarchive_entry_rdev\fP +.hy +("struct archive_entry *"); +\fIdev_t\fP +.RE +.nh +\fBarchive_entry_rdevmajor\fP +.hy +("struct archive_entry *"); +\fIdev_t\fP +.RE +.nh +\fBarchive_entry_rdevminor\fP +.hy +("struct archive_entry *"); +\fIvoid\fP +.RE +.nh +\fBarchive_entry_set_dev\fP +.hy +("struct archive_entry *" "dev_t"); +\fIvoid\fP +.RE +.nh +\fBarchive_entry_set_devmajor\fP +.hy +("struct archive_entry *" "dev_t"); +\fIvoid\fP +.RE +.nh +\fBarchive_entry_set_devminor\fP +.hy +("struct archive_entry *" "dev_t"); +\fIvoid\fP +.RE +.nh +\fBarchive_entry_set_filetype\fP +.hy +("struct archive_entry *" "unsigned int"); +\fIvoid\fP +.RE +.nh +\fBarchive_entry_set_fflags\fP +.hy +("struct archive_entry *" "unsigned long set" "unsigned long clear"); +\fIvoid\fP +.RE +.nh +\fBarchive_entry_set_gid\fP +.hy +("struct archive_entry *" "gid_t"); +\fIvoid\fP +.RE +.nh +\fBarchive_entry_set_gname\fP +.hy +("struct archive_entry *" "const char *"); +\fIvoid\fP +.RE +.nh +\fBarchive_entry_set_hardlink\fP +.hy +("struct archive_entry *" "const char *"); +\fIvoid\fP +.RE +.nh +\fBarchive_entry_set_ino\fP +.hy +("struct archive_entry *" "unsigned long"); +\fIvoid\fP +.RE +.nh +\fBarchive_entry_set_link\fP +.hy +("struct archive_entry *" "const char *"); +\fIvoid\fP +.RE +.nh +\fBarchive_entry_set_mode\fP +.hy +("struct archive_entry *" "mode_t"); +\fIvoid\fP +.RE +.nh +\fBarchive_entry_set_mtime\fP +.hy +("struct archive_entry *" "time_t" "long nanos"); +\fIvoid\fP +.RE +.nh +\fBarchive_entry_set_nlink\fP +.hy +("struct archive_entry *" "unsigned int"); +\fIvoid\fP +.RE +.nh +\fBarchive_entry_set_pathname\fP +.hy +("struct archive_entry *" "const char *"); +\fIvoid\fP +.RE +.nh +\fBarchive_entry_set_rdev\fP +.hy +("struct archive_entry *" "dev_t"); +\fIvoid\fP +.RE +.nh +\fBarchive_entry_set_rdevmajor\fP +.hy +("struct archive_entry *" "dev_t"); +\fIvoid\fP +.RE +.nh +\fBarchive_entry_set_rdevminor\fP +.hy +("struct archive_entry *" "dev_t"); +\fIvoid\fP +.RE +.nh +\fBarchive_entry_set_size\fP +.hy +("struct archive_entry *" "int64_t"); +\fIvoid\fP +.RE +.nh +\fBarchive_entry_set_symlink\fP +.hy +("struct archive_entry *" "const char *"); +\fIvoid\fP +.RE +.nh +\fBarchive_entry_set_uid\fP +.hy +("struct archive_entry *" "uid_t"); +\fIvoid\fP +.RE +.nh +\fBarchive_entry_set_uname\fP +.hy +("struct archive_entry *" "const char *"); +\fIint64_t\fP +.RE +.nh +\fBarchive_entry_size\fP +.hy +("struct archive_entry *"); +\fIconst struct stat *\fP +.RE +.nh +\fBarchive_entry_stat\fP +.hy +("struct archive_entry *"); +\fIconst char *\fP +.RE +.nh +\fBarchive_entry_symlink\fP +.hy +("struct archive_entry *"); +\fIconst char *\fP +.RE +.nh +\fBarchive_entry_uname\fP +.hy +("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 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: +.TP +.nh +\fBarchive_entry_clear\fP +.hy +(); +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 +.nh +\fBarchive_entry_clone\fP +.hy +(); +A deep copy operation; all text fields are duplicated. +.TP +.nh +\fBarchive_entry_free\fP +.hy +(); +Releases the +Tn struct archive_entry +object. +.TP +.nh +\fBarchive_entry_new\fP +.hy +(); +Allocate and return a blank +Tn struct archive_entry +object. +.SS Set and Get Functions +Most of the functions here set or read entries in an object. +Such functions have one of the following forms: +.TP +.nh +\fBarchive_entry_set_XXXX\fP +.hy +(); +Stores the provided data in the object. +In particular, for strings, the pointer is stored, +not the referenced string. +.TP +.nh +\fBarchive_entry_copy_XXXX\fP +.hy +(); +As above, except that the referenced data is copied +into the object. +.TP +.nh +\fBarchive_entry_XXXX\fP +.hy +(); +Returns the specified data. +In the case of strings, a const-qualified pointer to +the string is returned. +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. +There are a few set/get functions that merit additional description: +.TP +.nh +\fBarchive_entry_set_link\fP +.hy +(); +This function sets the symlink field if it is already set. +Otherwise, it sets the hardlink field. +.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. +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. +The canonical text format is a comma-separated list of flag names. +The +.nh +\fBarchive_entry_copy_fflags_text_w\fP +.hy +(); +function parses the provided text and sets 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 +\fBstrtofflags\fP(3), +which stops parsing at the first unrecognized name.) +.SS ACL Handling +XXX This needs serious help. +XXX +An +``Access Control List'' +(ACL) is a list of permissions that grant access to particular users or +groups beyond what would normally be provided by standard POSIX mode bits. +The ACL handling here addresses some deficiencies in the POSIX.1e draft 17 ACL +specification. +In particular, POSIX.1e draft 17 specifies several different formats, but +none of those formats include both textual user/group names and numeric +UIDs/GIDs. +XXX explain ACL stuff XXX +.SH SEE ALSO +\fBarchive\fP(3) +.SH HISTORY +The +\fBlibarchive\fP +library first appeared in +FreeBSD 5.3. +.SH AUTHORS +-nosplit +The +\fBlibarchive\fP +library was written by +Tim Kientzle <kientzle@acm.org.> |
