4mARCHIVE_ENTRY_PERMS24m(3)	 Library Functions Manual    4mARCHIVE_ENTRY_PERMS24m(3)

1mNAME0m
       archive_entry_gid,	archive_entry_set_gid,	    archive_entry_uid,
       archive_entry_set_uid,	archive_entry_perm,    archive_entry_set_perm,
       archive_entry_strmode,	 archive_entry_uname,	archive_entry_uname_w,
       archive_entry_set_uname,			     archive_entry_copy_uname,
       archive_entry_copy_uname_w,	      archive_entry_update_uname_utf8,
       archive_entry_gname,  archive_entry_gname_w,   archive_entry_set_gname,
       archive_entry_copy_gname,		   archive_entry_copy_gname_w,
       archive_entry_update_gname_utf8,			 archive_entry_fflags,
       archive_entry_fflags_text,		     archive_entry_set_fflags,
       archive_entry_copy_fflags_text,	 archive_entry_copy_fflags_text_w    —
       functions  for  manipulating ownership and permissions in archive entry
       descriptions

1mLIBRARY0m
       Streaming Archive Library (libarchive, -larchive)

1mSYNOPSIS0m
       1m#include <archive_entry.h>0m

       4mgid_t0m
       1marchive_entry_gid22m(4mstruct24m 4marchive_entry24m 4m*a24m);

       4mvoid0m
       1marchive_entry_set_gid22m(4mstruct24m 4marchive_entry24m 4m*a24m, 4mgid_t24m 4mgid24m);

       4muid_t0m
       1marchive_entry_uid22m(4mstruct24m 4marchive_entry24m 4m*a24m);

       4mvoid0m
       1marchive_entry_set_uid22m(4mstruct24m 4marchive_entry24m 4m*a24m, 4muid_t24m 4muid24m);

       4mmode_t0m
       1marchive_entry_perm22m(4mstruct24m 4marchive_entry24m 4m*a24m);

       4mvoid0m
       1marchive_entry_set_perm22m(4mstruct24m 4marchive_entry24m 4m*a24m, 4mmode_t24m 4mmode24m);

       4mconst24m 4mchar24m 4m*0m
       1marchive_entry_strmode22m(4mstruct24m 4marchive_entry24m 4m*a24m);

       4mconst24m 4mchar24m 4m*0m
       1marchive_entry_gname22m(4mstruct24m 4marchive_entry24m 4m*a24m);

       4mconst24m 4mwchar_t24m 4m*0m
       1marchive_entry_gname_w22m(4mstruct24m 4marchive_entry24m 4m*a24m);

       4mvoid0m
       1marchive_entry_set_gname22m(4mstruct24m 4marchive_entry24m 4m*a24m, 4mconst24m 4mchar24m 4m*a24m);

       4mvoid0m
       1marchive_entry_copy_gname22m(4mstruct24m 4marchive_entry24m 4m*a24m, 4mconst24m 4mchar24m 4m*name24m);

       4mvoid0m
       1marchive_entry_copy_gname_w22m(4mstruct24m	     4marchive_entry24m		  4m*a24m,
	   4mconst24m 4mwchar_t24m 4m*name24m);

       4mint0m
       1marchive_entry_update_gname_utf822m(4mstruct24m		4marchive_entry24m	  4m*a24m,
	   4mconst24m 4mchar24m 4m*name24m);

       4mconst24m 4mchar24m 4m*0m
       1marchive_entry_uname22m(4mstruct24m 4marchive_entry24m 4m*a24m);

       4mconst24m 4mwchar_t24m 4m*0m
       1marchive_entry_uname_w22m(4mstruct24m 4marchive_entry24m 4m*a24m);

       4mvoid0m
       1marchive_entry_set_uname22m(4mstruct24m 4marchive_entry24m 4m*a24m, 4mconst24m 4mchar24m 4m*name24m);

       4mvoid0m
       1marchive_entry_copy_uname22m(4mstruct24m 4marchive_entry24m 4m*a24m, 4mconst24m 4mchar24m 4m*name24m);

       4mvoid0m
       1marchive_entry_copy_uname_w22m(4mstruct24m	     4marchive_entry24m		  4m*a24m,
	   4mconst24m 4mwchar_t24m 4m*name24m);

       4mint0m
       1marchive_entry_update_uname_utf822m(4mstruct24m		4marchive_entry24m	  4m*a24m,
	   4mconst24m 4mchar24m 4m*name24m);

       4mvoid0m
       1marchive_entry_fflags22m(4mstruct24m 4marchive_entry24m 4m*a24m,  4munsigned24m 4mlong24m 4m*set_bits24m,
	   4munsigned24m 4mlong24m 4m*clear_bits24m);

       4mconst24m 4mchar24m 4m*0m
       1marchive_entry_fflags_text22m(4mstruct24m 4marchive_entry24m 4m*a24m);

       4mvoid0m
       1marchive_entry_set_fflags22m(4mstruct24m 4marchive_entry24m 4m*a24m,
	   4munsigned24m 4mlong24m 4mset_bits24m, 4munsigned24m 4mlong24m 4mclear_bits24m);

       4mconst24m 4mchar24m 4m*0m
       1marchive_entry_copy_fflags_text22m(4mstruct24m	       4marchive_entry24m	  4m*a24m,
	   4mconst24m 4mchar24m 4m*text24m);

       4mconst24m 4mwchar_t24m 4m*0m
       1marchive_entry_copy_fflags_text_w22m(4mstruct24m	4marchive_entry24m	  4m*a24m,
	   4mconst24m 4mwchar_t24m 4m*text24m);

1mDESCRIPTION0m
   1mUser id, group id and mode0m
       The    functions	   1marchive_entry_uid22m(),	1marchive_entry_gid22m(),    and
       1marchive_entry_perm22m() can be used to extract the user id, group  id	and
       permission   from   the	 given	entry.	 The  corresponding  functions
       1marchive_entry_set_uid22m(),	      1marchive_entry_set_gid22m(),	     and
       1marchive_entry_set_perm22m()  store the given user id, group id and permis‐
       sion in the entry.  The permission is also set  as  a  side  effect  of
       calling 1marchive_entry_set_mode22m().

       1marchive_entry_strmode22m()  returns a string representation of the permis‐
       sion as used by the long mode of 4mls24m(1).

   1mUser and group name0m
       User and group names can be provided in one of three different ways:

       char *	  Multibyte strings in the current locale.

       wchar_t *  Wide character strings in the current locale.	 The  accessor
		  functions are named 1mXXX_w22m().

       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.

       1marchive_entry_set_XXX22m()  is an alias for 1marchive_entry_copy_XXX22m().  The
       strings are copied, and don't need to outlive the call.

   1mFile Flags0m
       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 4mfflagstostr24m(3), which only includes names for	set  bits.)
       Converting  a  bitmap to a textual string is a platform-specific opera‐
       tion; bits that are not meaningful on the current platform will be  ig‐
       nored.

       The canonical text format is a comma-separated list of flag names.  The
       1marchive_entry_copy_fflags_text22m() and 1marchive_entry_copy_fflags_text_w22m()
       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 4mstrtofflags24m(3), which stops parsing at the first  unrecog‐
       nized name.)

1mSEE ALSO0m
       4marchive_entry24m(3),	   4marchive_entry_acl24m(3),	   4marchive_read_disk24m(3),
       4marchive_write_disk24m(3), 4mlibarchive24m(3)

1mBUGS0m
       The platform types 4muid_t24m and 4mgid_t24m 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.

Debian			       February 2, 2012		4mARCHIVE_ENTRY_PERMS24m(3)
