GETFIELDS(2)                                         GETFIELDS(2)

     NAME
          getfields, getmfields, setfields, tokenize - break a string
          into fields

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

          int   getfields(char *str, char **ptrs, int nptrs)

          int   getmfields(char *str, char **ptrs, int nptrs)

          char* setfields(char *fielddelim)

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

     DESCRIPTION
          Getfields breaks the null-terminated string str into at most
          nptrs null-terminated fields and places pointers to the
          start of these fields in the array ptrs. It returns the num-
          ber of fields and terminates the list of pointers with a
          zero pointer.  It overwrites some of the bytes in str. If
          there are nptr or more fields, the list will not end with
          zero and the last `field' will extend to the end of the
          input string and may contain delimiters.

          A field is defined as a maximal sequence of characters not
          in a set of field delimiters.  Adjacent fields are separated
          by exactly one delimiter.  No field follows a delimiter at
          the end of string.  Thus a string of just two delimiter
          characters contains two empty fields, and a nonempty string
          with no delimiters contains one field.

          Getmfields is the same as getfields except that fields are
          separated by maximal strings of field delimiters rather than
          just one.

          Setfields makes the field delimiters (space and tab by
          default) be the characters of the string fielddelim and
          returns a pointer to a string of the previous delimiters.

          Tokenize breaks null-terminated string str into tokens by
          replacing every blank or newline with a null byte.  Pointers
          to successive non-empty tokens are placed in args.  Process-
          ing stops after max tokens are processed.  Tokenize returns
          the number of tokens processed.  Tokenize does not terminate
          args with a null pointer.

        Alef
          Of these routines, only tokenize is in Alef.

     Page 1                       Plan 9             (printed 3/29/24)

     GETFIELDS(2)                                         GETFIELDS(2)

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

     SEE ALSO
          strtok in strcat(2)

     Page 2                       Plan 9             (printed 3/29/24)