The
flags_to_string() and
string_to_flags() functions are used by programs such as
ls(1),
mtree(8),
makefs(8), etc., to parse and/or print the
st_flags field in the stat(2) structure.
They recognize the following flags:
arch
SF_ARCHIVED
file is archived
nodump
UF_NODUMP
do not dump file
opaque
UF_OPAQUE
directory is opaque in union filesystems
sappnd
SF_APPEND
writes to the file may only append
schg
SF_IMMUTABLE
file cannot be changed; it is immutable
snap
SF_SNAPSHOT
file is a snapshot inode
uappnd
UF_APPEND
writes to the file may only append
uchg
UF_IMMUTABLE
file cannot be changed; it is immutable
The
SF_APPEND and
SF_IMMUTABLE flags are for the superuser only, whereas
UF_APPEND and
UF_IMMUTABLE are for the user only.
The
flags_to_string() function converts the bits set in the
flags argument to a comma-separated string and returns it. If no flags are set, then the
def string is returned. The returned string is allocated via
malloc(3) and it is the responsibility of the caller to
free(3) it.
The
string_to_flags() function takes a
stringp of space, comma, or tab separated flag names and places their bit value on the
setp argument. If the flag name is prefixed by: “no”, then the bit value is placed on the
clrp argument.