plan9port

fork of plan9port with libvec, libstr and libsdb
Log | Files | Refs | README | LICENSE

getfields.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) .