Updated: 2022/Sep/29

Please read Privacy Policy. It's for your privacy.


STRINGLIST(3)              Library Functions Manual              STRINGLIST(3)

NAME
     stringlist, sl_init, sl_add, sl_free, sl_find, sl_delete - stringlist
     manipulation functions

LIBRARY
     Standard C Library (libc, -lc)

SYNOPSIS
     #include <stringlist.h>

     StringList *
     sl_init();

     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 NetBSD 1.3.

NetBSD 10.99                      May 6, 2010                     NetBSD 10.99