GETFIELDS(2)                                         GETFIELDS(2)

     NAME
          getfields, gettokens, tokenize - break a string into fields

     SYNOPSIS
          #include <u.h>
          #include <libc.h>

          int   getfields(char *str, char **args, int maxargs, int
          multiflag,
                    char *delims)

          int   gettokens(char *str, char **args, int maxargs, char
          *delims)

          int   tokenize(char *str, char **args, int maxargs)

     DESCRIPTION
          Getfields places into the array args pointers to the first
          maxargs fields of the null terminated UTF string str. Delim-
          iters between these fields are set to null.

          Fields are substrings of str whose definition depends on the
          value of multiflag. If multiflag is zero, adjacent fields
          are separated by exactly one delimiter.  For example

                getfields("#alice#bob##charles###", arg, 3, 0, "#");

          yields three substrings: null-string , alice, and
          bob##charles###.  If the multiflag argument is not zero, a
          field is a non-empty string of non-delimiters.  For example

                getfields("#alice#bob##charles###", arg, 3, 1, "#");

          yields the three substrings: alice, bob, and charles###.

          Getfields returns the number of fields pointed to.

          Gettokens is the same as getfields with multiflag non-zero,
          except that fields may be quoted using single quotes, in the
          manner of rc(1). Any such quotes remain in the resulting
          args. See quote(2) for related quote-handling software.

          Tokenize is similar to gettokens with delims set to
          "\t\r\n ", except that quotes are interpreted but do not
          appear in the resulting args.

     SOURCE
          /sys/src/libc/port/getfields.c
          /sys/src/libc/port/tokenize.c

     GETFIELDS(2)                                         GETFIELDS(2)

     SEE ALSO
          strtok in strcat(2), quote(2).