Annotation of researchv10dc/man/manx/getflds.3, revision 1.1.1.1

1.1       root        1: .TH GETFLDS 3S
                      2: .SH NAME
                      3: getflds \(mi read a line from a file and break it into fields
                      4: .SH SYNOPSIS
                      5: .nf
                      6: .B #include <stdio.h>
                      7: .PP
                      8: .B char **getflds(stream)
                      9: .B FILE *stream;
                     10: .fi
                     11: .SH DESCRIPTION
                     12: .I Getflds
                     13: reads a line from the
                     14: .I stream
                     15: given as argument, breaks it into fields,
                     16: and returns a pointer to a null-terminated array of
                     17: character pointers, each of which points
                     18: to a null-terminated string representing one field.
                     19: These strings, and the array that points to them,
                     20: persist until the next call to
                     21: .IR getflds .
                     22: On end of file, a null pointer is returned.
                     23: .PP
                     24: If the first character of a line is a
                     25: .LR # ,
                     26: that line is considered to be a comment and ignored.
                     27: .PP
                     28: Fields are separated by white space (spaces or tabs).
                     29: Leading and trailing white space on a line is ignored.
                     30: White space may appear inside a field in one of three
                     31: ways: each space or tab may be preceded by a backslash,
                     32: the white space may be enclosed in single or
                     33: double quotes, or characters may described
                     34: in octal, as detailed below.
                     35: .PP
                     36: A field, or any parts of a field, may be enclosed in single
                     37: or double quotes.
                     38: Within quotes, white space and
                     39: quotes of the other sort are treated as
                     40: ordinary characters, but a closing quote
                     41: is silently inserted before a newline.
                     42: .PP
                     43: Inside or outside quotes, a backslash
                     44: and the character(s) after it are changed as follows:
                     45: .nf
                     46: .ta 10n
                     47: \fL\eb\fR      backspace
                     48: \fL\ef\fR      form feed
                     49: \fL\en\fR      newline
                     50: \fL\er\fR      return
                     51: \fL\et\fR      horizontal tab
                     52: \fL\ev\fR      vertical tab
                     53: \fL\e\e\fR     \e
                     54: \fL\e\'\fR     \'
                     55: \fL\e"\fR      "
                     56: \fL\e#\fR      #
                     57: \fL\e\fIspace\fR       space
                     58: \fL\e\fItab\fR tab
                     59: \fL\e\fInewline\fR     completely ignored; this allows a logical line to span any number of physical lines.
                     60: \fL\e\fIdigits\fR      the one, two, or three octal digits are the value of the character to be used.
                     61: .fi
                     62: .PP
                     63: If any other character follows the
                     64: .LR \e ,
                     65: both
                     66: characters lose their special interpretation.
                     67: .SH DIAGNOSTICS
                     68: If
                     69: .I getflds
                     70: detects an error, it returns
                     71: .LR 0 ,
                     72: just as it does at end of file.
                     73: However, the error will have changed
                     74: .I errno
                     75: (see
                     76: .IR intro (2)).
                     77: To distinguish between error and
                     78: end of file set
                     79: .I errno
                     80: to zero before calling
                     81: .I getflds
                     82: and test it afterwards.
                     83: .SH BUGS
                     84: .I Getflds
                     85: provides no way to distinguish a null character
                     86: within a field from the end of the field.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.