DOKK / manpages / debian 11 / libbsd-dev / sl_free.3bsd.en
STRINGLIST(3bsd) 3bsd STRINGLIST(3bsd)

stringlist, sl_init, sl_add, sl_free, sl_find, sl_deletestringlist manipulation functions

library “libbsd”

#include <stringlist.h> (See libbsd(7) for include usage.)
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);

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:

()
Create a stringlist. Returns a pointer to a StringList, or NULL in case of failure.
()
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.
()
Add item to sl->sl_str at sl->sl_cur, extending the size of sl->sl_str. Returns zero upon success, -1 upon failure.
()
Find item in sl, returning NULL if it's not found.
()
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.

free(3), malloc(3)

The stringlist functions appeared in FreeBSD 2.2.6 and NetBSD 1.3.

May 6, 2010 Debian