1.\" $OpenBSD: strtofflags.3,v 1.7 2013/06/05 03:39:22 tedu Exp $ 2.\" 3.\" Copyright (c) 1989, 1991, 1993 4.\" The Regents of the University of California. All rights reserved. 5.\" 6.\" Redistribution and use in source and binary forms, with or without 7.\" modification, are permitted provided that the following conditions 8.\" are met: 9.\" 1. Redistributions of source code must retain the above copyright 10.\" notice, this list of conditions and the following disclaimer. 11.\" 2. Redistributions in binary form must reproduce the above copyright 12.\" notice, this list of conditions and the following disclaimer in the 13.\" documentation and/or other materials provided with the distribution. 14.\" 3. Neither the name of the University nor the names of its contributors 15.\" may be used to endorse or promote products derived from this software 16.\" without specific prior written permission. 17.\" 18.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 19.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 21.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 22.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 23.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 24.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 25.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 26.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 27.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 28.\" SUCH DAMAGE. 29.\" 30.\" @(#)setmode.3 8.2 (Berkeley) 4/28/95 31.\" $FreeBSD: src/lib/libc/gen/strtofflags.3,v 1.5 2000/06/17 11:09:24 joe Exp $ 32.\" 33.Dd $Mdocdate: June 5 2013 $ 34.Dt STRTOFFLAGS 3 35.Os 36.Sh NAME 37.Nm fflagstostr , 38.Nm strtofflags 39.Nd convert between file flag bits and their string names 40.Sh SYNOPSIS 41.In unistd.h 42.Ft char * 43.Fn fflagstostr "u_int32_t flags" 44.Ft int 45.Fn strtofflags "char **stringp" "u_int32_t *setp" "u_int32_t *clrp" 46.Sh DESCRIPTION 47The 48.Fn fflagstostr 49function returns a comma separated string of the file flags represented by 50.Fa flags . 51If no flags are set, a zero length string is returned. 52.Pp 53If memory cannot be allocated for the return value, 54.Fn fflagstostr 55returns 56.Dv NULL . 57.Pp 58The value returned from 59.Fn fflagstostr 60is obtained from 61.Xr malloc 3 62and should be returned to the system with 63.Xr free 3 64when the program is done with it. 65.Pp 66The 67.Fn strtofflags 68function takes a string of file flags, as described in 69.Xr chflags 1 , 70parses it, and returns the 71.Dq set 72and 73.Dq clear 74flags such as would be given as arguments to 75.Xr chflags 2 . 76On success, 77.Fn strtofflags 78returns 0, otherwise it returns non-zero and 79.Fa stringp 80is left pointing to the offending token. 81.Sh ERRORS 82The 83.Fn fflagstostr 84function may fail and set 85.Va errno 86for any of the errors specified for the library routine 87.Xr malloc 3 . 88.Sh SEE ALSO 89.Xr chflags 1 , 90.Xr chflags 2 , 91.Xr malloc 3 92.Sh HISTORY 93The 94.Fn fflagstostr 95and 96.Fn strtofflags 97functions first appeared in 98.Ox 2.8 . 99