tgetfields.3 - plan9port - [fork] Plan 9 from user space
 (HTM) git clone git://src.adamsgaard.dk/plan9port
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
       tgetfields.3 (1602B)
       ---
            1 .TH GETFIELDS 3
            2 .SH NAME
            3 getfields, gettokens, tokenize \- break a string into fields
            4 .SH SYNOPSIS
            5 .B #include <u.h>
            6 .br
            7 .B #include <libc.h>
            8 .PP
            9 .ta \w'\fLchar* \fP'u
           10 .B
           11 int        getfields(char *str, char **args, int maxargs, int multiflag,
           12 .br
           13 .B
           14             char *delims)
           15 .PP
           16 .B
           17 int        gettokens(char *str, char **args, int maxargs, char *delims)
           18 .PP
           19 .B
           20 int        tokenize(char *str, char **args, int maxargs)
           21 .SH DESCRIPTION
           22 .I Getfields
           23 places into the array
           24 .I args
           25 pointers to the first
           26 .I maxargs
           27 fields of the null terminated
           28 .SM UTF
           29 string
           30 .IR str .
           31 Delimiters between these fields are set to null.
           32 .PP
           33 Fields are substrings of
           34 .I str
           35 whose definition depends on the value of
           36 .IR multiflag.
           37 If
           38 .I multiflag
           39 is zero,
           40 adjacent fields are separated by exactly one delimiter.
           41 For example
           42 .EX
           43 
           44         getfields("#alice#bob##charles###", arg, 3, 0, "#");
           45 
           46 .EE
           47 yields three substrings:
           48 null-string ,
           49 .BR "alice" ,
           50 and
           51 .BR "bob##charles###" .
           52 If the
           53 .I multiflag
           54 argument is not zero,
           55 a field is a non-empty string of non-delimiters.
           56 For example
           57 .EX
           58 
           59         getfields("#alice#bob##charles###", arg, 3, 1, "#");
           60 
           61 .EE
           62 yields the three substrings:
           63 .BR "alice" ,
           64 .BR "bob" ,
           65 and
           66 .BR "charles###" .
           67 .PP
           68 Getfields returns the number of fields pointed to.
           69 .PP
           70 .I Gettokens
           71 is the same as
           72 .I getfields
           73 with
           74 .I multiflag
           75 non-zero,
           76 except that fields may be quoted using single quotes, in the manner
           77 of
           78 .MR rc (1) .
           79 See
           80 .MR quote (3)
           81 for related quote-handling software.
           82 .PP
           83 .I Tokenize
           84 is
           85 .I gettokens
           86 with 
           87 .I delims
           88 set to \f5"\et\er\en "\fP.
           89 .SH SOURCE
           90 .B \*9/src/lib9/tokenize.c
           91 .SH SEE ALSO
           92 .I strtok
           93 in
           94 .MR strcat (3) ,
           95 .MR quote (3) .