| STAT_FLAGS(3) | Library Functions Manual | STAT_FLAGS(3) | 
string_to_flags, flags_to_string
  —
#include <util.h>
char *
  
  flags_to_string(u_long
    flags, const char
    *def);
int
  
  string_to_flags(char
    **stringp, u_long
    *setp, u_long
    *clrp);
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:
| String | Flag | Description | 
| 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.
flags_to_string() 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.
| September 20, 2012 | NetBSD 10.0 |