summaryrefslogtreecommitdiff
path: root/static/plan9-4e/man2/getfields.2
blob: 9f8997737609a0717ff6cca5643c4e543204aca6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
.TH GETFIELDS 2
.SH NAME
getfields, gettokens, tokenize \- break a string into fields
.SH SYNOPSIS
.B #include <u.h>
.br
.B #include <libc.h>
.PP
.ta \w'\fLchar* \fP'u
.B
int	getfields(char *str, char **args, int maxargs, int multiflag,
.br
.B
	    char *delims)
.PP
.B
int	gettokens(char *str, char **args, int maxargs, char *delims)
.PP
.B
int	tokenize(char *str, char **args, int maxargs)
.SH DESCRIPTION
.I Getfields
breaks the null-terminated
.SM UTF
string
.I str
into at most
.I maxargs
null-terminated fields and places pointers to the start of these fields in the array
.IR args .
Some of the bytes in
.I str
are overwritten.
If there are more than
.I maxargs
fields,
only the first
.I maxargs
fields will be set.
.I Delims
is a
.SM UTF
string defining a set of delimiters.
.PP
If
.I multiflag
is zero,
adjacent fields are separated by exactly one delimiter.
A string containing
.I n
delimiter characters
contains
.IR n +1
fields.
If the
.I multiflag
argument is not zero,
a field is a non-empty string of non-delimiters.
.PP
Getfields
returns the number of tokens processed.
.PP
.I Gettokens
is the same as
.I getfields
with
.I multiflag
non-zero,
except that fields may be quoted using single quotes, in the manner
of
.IR rc (1).
See
.IR quote (2)
for related quote-handling software.
.PP
.I Tokenize
is
.I gettokens
with 
.I delims
set to \f5"\et\er\en "\fP.
.SH SOURCE
.B /sys/src/libc/port/tokenize.c
.SH SEE ALSO
.I strtok
in
.IR strcat (2),
.IR quote (2).