Blame doc/man/archive_entry_perms.3

Packit Service 1d0348
.TH ARCHIVE_ENTRY_PERMS 3 "February 2, 2012" ""
Packit Service 1d0348
.SH NAME
Packit Service 1d0348
.ad l
Packit Service 1d0348
\fB\%archive_entry_gid\fP,
Packit Service 1d0348
\fB\%archive_entry_set_gid\fP,
Packit Service 1d0348
\fB\%archive_entry_uid\fP,
Packit Service 1d0348
\fB\%archive_entry_set_uid\fP,
Packit Service 1d0348
\fB\%archive_entry_perm\fP,
Packit Service 1d0348
\fB\%archive_entry_set_perm\fP,
Packit Service 1d0348
\fB\%archive_entry_strmode\fP,
Packit Service 1d0348
\fB\%archive_entry_uname\fP,
Packit Service 1d0348
\fB\%archive_entry_uname_w\fP,
Packit Service 1d0348
\fB\%archive_entry_set_uname\fP,
Packit Service 1d0348
\fB\%archive_entry_copy_uname\fP,
Packit Service 1d0348
\fB\%archive_entry_copy_uname_w\fP,
Packit Service 1d0348
\fB\%archive_entry_update_uname_utf8\fP,
Packit Service 1d0348
\fB\%archive_entry_gname\fP,
Packit Service 1d0348
\fB\%archive_entry_gname_w\fP,
Packit Service 1d0348
\fB\%archive_entry_set_gname\fP,
Packit Service 1d0348
\fB\%archive_entry_copy_gname\fP,
Packit Service 1d0348
\fB\%archive_entry_copy_gname_w\fP,
Packit Service 1d0348
\fB\%archive_entry_update_gname_utf8\fP,
Packit Service 1d0348
\fB\%archive_entry_fflags\fP,
Packit Service 1d0348
\fB\%archive_entry_fflags_text\fP,
Packit Service 1d0348
\fB\%archive_entry_set_fflags\fP,
Packit Service 1d0348
\fB\%archive_entry_copy_fflags_text\fP,
Packit Service 1d0348
\fB\%archive_entry_copy_fflags_text_w\fP
Packit Service 1d0348
\- functions for manipulating ownership and permissions in archive entry descriptions
Packit Service 1d0348
.SH LIBRARY
Packit Service 1d0348
.ad l
Packit Service 1d0348
Streaming Archive Library (libarchive, -larchive)
Packit Service 1d0348
.SH SYNOPSIS
Packit Service 1d0348
.ad l
Packit Service 1d0348
\fB#include <archive_entry.h>\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fIgid_t\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_gid\fP(\fI\%struct\ archive_entry\ *a\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIvoid\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_set_gid\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%gid_t\ gid\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIuid_t\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_uid\fP(\fI\%struct\ archive_entry\ *a\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIvoid\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_set_uid\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%uid_t\ uid\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fImode_t\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_perm\fP(\fI\%struct\ archive_entry\ *a\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIvoid\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_set_perm\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%mode_t\ mode\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIconst char *\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_strmode\fP(\fI\%struct\ archive_entry\ *a\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIconst char *\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_gname\fP(\fI\%struct\ archive_entry\ *a\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIconst wchar_t *\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_gname_w\fP(\fI\%struct\ archive_entry\ *a\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIvoid\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_set_gname\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%const\ char\ *a\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIvoid\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_copy_gname\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%const\ char\ *name\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIvoid\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_copy_gname_w\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%const\ wchar_t\ *name\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIint\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_update_gname_utf8\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%const\ char\ *name\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIconst char *\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_uname\fP(\fI\%struct\ archive_entry\ *a\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIconst wchar_t *\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_uname_w\fP(\fI\%struct\ archive_entry\ *a\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIvoid\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_set_uname\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%const\ char\ *name\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIvoid\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_copy_uname\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%const\ char\ *name\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIvoid\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_copy_uname_w\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%const\ wchar_t\ *name\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIint\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_update_uname_utf8\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%const\ char\ *name\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIvoid\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_fflags\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%unsigned\ long\ *set_bits\fP, \fI\%unsigned\ long\ *clear_bits\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIconst char *\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_fflags_text\fP(\fI\%struct\ archive_entry\ *a\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIvoid\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_set_fflags\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%unsigned\ long\ set_bits\fP, \fI\%unsigned\ long\ clear_bits\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIconst char *\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_copy_fflags_text\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%const\ char\ *text\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIconst wchar_t *\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_copy_fflags_text_w\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%const\ wchar_t\ *text\fP);
Packit Service 1d0348
.SH DESCRIPTION
Packit Service 1d0348
.ad l
Packit Service 1d0348
.SS User id, group id and mode
Packit Service 1d0348
The functions
Packit Service 1d0348
\fB\%archive_entry_uid\fP(),
Packit Service 1d0348
\fB\%archive_entry_gid\fP(),
Packit Service 1d0348
and
Packit Service 1d0348
\fB\%archive_entry_perm\fP()
Packit Service 1d0348
can be used to extract the user id, group id and permission from the given entry.
Packit Service 1d0348
The corresponding functions
Packit Service 1d0348
\fB\%archive_entry_set_uid\fP(),
Packit Service 1d0348
\fB\%archive_entry_set_gid\fP(),
Packit Service 1d0348
and
Packit Service 1d0348
\fB\%archive_entry_set_perm\fP()
Packit Service 1d0348
store the given user id, group id and permission in the entry.
Packit Service 1d0348
The permission is also set as side effect of calling
Packit Service 1d0348
\fB\%archive_entry_set_mode\fP().
Packit Service 1d0348
.PP
Packit Service 1d0348
\fB\%archive_entry_strmode\fP()
Packit Service 1d0348
returns a string representation of the permission as used by the long mode of
Packit Service 1d0348
\fBls\fP(1).
Packit Service 1d0348
.SS User and group name
Packit Service 1d0348
User and group names can be provided in one of three different ways:
Packit Service 1d0348
.RS 5
Packit Service 1d0348
.TP
Packit Service 1d0348
char *
Packit Service 1d0348
Multibyte strings in the current locale.
Packit Service 1d0348
.TP
Packit Service 1d0348
wchar_t *
Packit Service 1d0348
Wide character strings in the current locale.
Packit Service 1d0348
The accessor functions are named
Packit Service 1d0348
\fB\%XXX_w\fP().
Packit Service 1d0348
.TP
Packit Service 1d0348
UTF-8
Packit Service 1d0348
Unicode strings encoded as UTF-8.
Packit Service 1d0348
This are convience functions to update both the multibyte and wide
Packit Service 1d0348
character strings at the same time.
Packit Service 1d0348
.RE
Packit Service 1d0348
.PP
Packit Service 1d0348
\fB\%archive_entry_set_XXX\fP()
Packit Service 1d0348
is an alias for 
Packit Service 1d0348
\fB\%archive_entry_copy_XXX\fP().
Packit Service 1d0348
.SS File Flags
Packit Service 1d0348
File flags are transparently converted between a bitmap
Packit Service 1d0348
representation and a textual format.
Packit Service 1d0348
For example, if you set the bitmap and ask for text, the library
Packit Service 1d0348
will build a canonical text format.
Packit Service 1d0348
However, if you set a text format and request a text format,
Packit Service 1d0348
you will get back the same text, even if it is ill-formed.
Packit Service 1d0348
If you need to canonicalize a textual flags string, you should first set the
Packit Service 1d0348
text form, then request the bitmap form, then use that to set the bitmap form.
Packit Service 1d0348
Setting the bitmap format will clear the internal text representation
Packit Service 1d0348
and force it to be reconstructed when you next request the text form.
Packit Service 1d0348
.PP
Packit Service 1d0348
The bitmap format consists of two integers, one containing bits
Packit Service 1d0348
that should be set, the other specifying bits that should be
Packit Service 1d0348
cleared.
Packit Service 1d0348
Bits not mentioned in either bitmap will be ignored.
Packit Service 1d0348
Usually, the bitmap of bits to be cleared will be set to zero.
Packit Service 1d0348
In unusual circumstances, you can force a fully-specified set
Packit Service 1d0348
of file flags by setting the bitmap of flags to clear to the complement
Packit Service 1d0348
of the bitmap of flags to set.
Packit Service 1d0348
(This differs from
Packit Service 1d0348
\fBfflagstostr\fP(3),
Packit Service 1d0348
which only includes names for set bits.)
Packit Service 1d0348
Converting a bitmap to a textual string is a platform-specific
Packit Service 1d0348
operation; bits that are not meaningful on the current platform
Packit Service 1d0348
will be ignored.
Packit Service 1d0348
.PP
Packit Service 1d0348
The canonical text format is a comma-separated list of flag names.
Packit Service 1d0348
The
Packit Service 1d0348
\fB\%archive_entry_copy_fflags_text\fP()
Packit Service 1d0348
and
Packit Service 1d0348
\fB\%archive_entry_copy_fflags_text_w\fP()
Packit Service 1d0348
functions parse the provided text and sets the internal bitmap values.
Packit Service 1d0348
This is a platform-specific operation; names that are not meaningful
Packit Service 1d0348
on the current platform will be ignored.
Packit Service 1d0348
The function returns a pointer to the start of the first name that was not
Packit Service 1d0348
recognized, or NULL if every name was recognized.
Packit Service 1d0348
Note that every name \(em including names that follow an unrecognized
Packit Service 1d0348
name \(em will be evaluated, and the bitmaps will be set to reflect
Packit Service 1d0348
every name that is recognized.
Packit Service 1d0348
(In particular, this differs from
Packit Service 1d0348
\fBstrtofflags\fP(3),
Packit Service 1d0348
which stops parsing at the first unrecognized name.)
Packit Service 1d0348
.SH SEE ALSO
Packit Service 1d0348
.ad l
Packit Service 1d0348
\fBarchive_entry\fP(3),
Packit Service 1d0348
\fBarchive_entry_acl\fP(3),
Packit Service 1d0348
\fBarchive_read_disk\fP(3),
Packit Service 1d0348
\fBarchive_write_disk\fP(3)
Packit Service 1d0348
\fBlibarchive\fP(3),
Packit Service 1d0348
.SH BUGS
Packit Service 1d0348
.ad l
Packit Service 1d0348
The platform types
Packit Service 1d0348
Vt uid_t
Packit Service 1d0348
and
Packit Service 1d0348
Vt gid_t
Packit Service 1d0348
are often 16 or 32 bit wide.
Packit Service 1d0348
In this case it is possible that the ids can not be correctly restored
Packit Service 1d0348
from archives and get truncated.