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.