NAME¶
stringlist
,
sl_init
,
sl_add
,
sl_free
,
sl_find
,
sl_delete
—
stringlist manipulation functions
LIBRARY¶
library “libbsd”
SYNOPSIS¶
#include
<bsd/stringlist.h>
StringList *
sl_init
(
void);
int
sl_add
(
StringList
*sl,
char
*item);
void
sl_free
(
StringList
*sl,
int
freeall);
char *
sl_find
(
StringList
*sl,
const char
*item);
int
sl_delete
(
StringList
*sl,
const char
*item,
int
freeit);
DESCRIPTION¶
The
stringlist
functions manipulate
stringlists, which are lists of strings that extend automatically if
necessary.
The
StringList structure has the following
definition:
typedef struct _stringlist {
char **sl_str;
size_t sl_max;
size_t sl_cur;
} StringList;
where:
- sl_str
- is a pointer to the base of the array containing the list,
- sl_max
- is the size of sl_str, and
- sl_cur
- is the offset in sl_str of the current
element.
The following stringlist manipulation functions are available:
sl_init
()
- Create a stringlist. Returns a pointer to a
StringList, or
NULL
in case of failure.
sl_free
()
- Releases memory occupied by sl and the
sl->sl_str array. If
freeall is non-zero, then each of the
items within sl->sl_str is released as
well.
sl_add
()
- Add item to
sl->sl_str at
sl->sl_cur, extending the size of
sl->sl_str. Returns zero upon success,
-1 upon failure.
sl_find
()
- Find item in
sl, returning
NULL
if it's not found.
sl_delete
()
- Remove item from the list. If
freeit is non-zero, the string is freed.
Returns
0
if the name is found and
-1
if the name is not found.
SEE ALSO¶
free(3),
malloc(3)
HISTORY¶
The
stringlist
functions appeared in
FreeBSD 2.2.6 and
NetBSD
1.3.