char
*
flags_to_string(
u_long flags
, const char *def
)
int
string_to_flags(
char **stringp
, u_long *setp
, u_long clrp
)
)
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
)
nodump (
UF_NODUMP
)
opaque (
UF_OPAQUE
)
sappnd (
SF_APPEND
)
schg (
SF_IMMUTABLE
)
snap (
SF_SNAPSHOT
)
uappnd (
UF_APPEND
)
uchg (
UF_IMMUTABLE
)
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.
)
returns the symbolic representation of flags, the default string, or
NULL
if allocation failed.
string_to_flags()
returns
0
on success and
1
if it fails to parse the string, setting
stringp
to point to the first string that it failed to parse.