---
name: "fflagstostr"
section: "3"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["freebsd"]
url: "https://new.carta.tech/fflagstostr"
---

# fflagstostr(3)

convert between file flag bits and their string names

## NAME

**fflagstostr**, **strtofflags** – convert between file flag bits and their string names

## LIBRARY

Standard C Library (libc, -lc)

## SYNOPSIS

**#include \<unistd.h\>**

*char* *\**\

**fflagstostr**(*u\_long flags*);

*int*\

**strtofflags**(*char \*\*stringp*, *u\_long \*setp*, *u\_long \*clrp*);

## DESCRIPTION

The **fflagstostr**() function returns a comma separated string of the file flags represented by *flags*. If no flags are set a zero length string is returned.

If memory cannot be allocated for the return value, **fflagstostr**() returns NULL.

The value returned from **fflagstostr**() is obtained from **malloc**() and should be returned to the system with **free**() when the program is done with it.

The **strtofflags**() function takes a string of file flags, as described in [chflags(1)](/chflags/1.md), parses it, and returns the 'set' flags and 'clear' flags such as would be given as arguments to [chflags(2)](/chflags/2.md). On success **strtofflags**() returns 0, otherwise it returns non-zero and *stringp* is left pointing to the offending token.

## ERRORS

The **fflagstostr**() function may fail and set errno for any of the errors specified for the library routine [malloc(3)](/malloc/3.md).

## SEE ALSO

[chflags(1)](/chflags/1.md), [chflags(2)](/chflags/2.md), [malloc(3)](/malloc/3.md)

## HISTORY

The **fflagstostr**() and **strtofflags**() functions first appeared in FreeBSD 4.0.
