December 14, 2006 STAT_FLAGS 3

### NAME

string_to_flags, flags_to_string - Stat flags parsing and printing functions

### LIBRARY

System Utilities Library (libutil, -lutil)

### SYNOPSIS

```char``*` flags_to_string(```u_long flags``, const char *def`)
```int` string_to_flags(```char **stringp``, u_long *setp``, u_long clrp`)

### DESCRIPTION

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 (superuser only).

```schg (````SF_IMMUTABLE`)
  file cannot be changed, is immutable (superuser only).

```snap (````SF_SNAPSHOT`)
  file is snapshot inode.

```uappnd (````UF_APPEND`)
  writes to the file may only append (user only).

```uchg (````UF_IMMUTABLE`)
  file cannot be changed, is immutable (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.

### RETURN VALUES

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.

### SEE ALSO

stat(2)