Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

fparseln(3) [netbsd man page]

FPARSELN(3)						   BSD Library Functions Manual 					       FPARSELN(3)

NAME
fparseln -- return the next logical line from a stream LIBRARY
Standard C Library (libc, -lc) SYNOPSIS
#include <stdio.h> char * fparseln(FILE *stream, size_t *len, size_t *lineno, const char delim[3], int flags); DESCRIPTION
The fparseln() function returns a pointer to the next logical line from the stream referenced by stream. This string is NUL terminated and it is dynamically allocated on each invocation. It is the responsibility of the caller to free the pointer. By default, if a character is escaped, both it and the preceding escape character will be present in the returned string. Various flags alter this behaviour. The meaning of the arguments is as follows: stream The stream to read from. len If not NULL, the length of the string is stored in the memory location to which it points. lineno If not NULL, the value of the memory location to which is pointed to, is incremented by the number of lines actually read from the file. delim Contains the escape, continuation, and comment characters. If a character is NUL then processing for that character is disabled. If NULL, all characters default to values specified below. The contents of delim is as follows: delim[0] The escape character, which defaults to , is used to remove any special meaning from the next character. delim[1] The continuation character, which defaults to , is used to indicate that the next line should be concatenated with the current one if this character is the last character on the current line and is not escaped. delim[2] The comment character, which defaults to #, if not escaped indicates the beginning of a comment that extends until the end of the current line. flags If non-zero, alter the operation of fparseln(). The various flags, which may be or-ed together, are: FPARSELN_UNESCCOMM Remove escape preceding an escaped comment. FPARSELN_UNESCCONT Remove escape preceding an escaped continuation. FPARSELN_UNESCESC Remove escape preceding an escaped escape. FPARSELN_UNESCREST Remove escape preceding any other character. FPARSELN_UNESCALL All of the above. RETURN VALUES
Upon successful completion a pointer to the parsed line is returned; otherwise, NULL is returned. The fparseln() function uses internally fgetln(3), so all error conditions that apply to fgetln(3), apply to fparseln(). In addition fparseln() may set errno to [ENOMEM] and return NULL if it runs out of memory. SEE ALSO
fgetln(3) HISTORY
The fparseln() function first appeared in NetBSD 1.4. BSD
November 30, 2002 BSD

Check Out this Related Man Page

OPENPAM_READWORD(3)					   BSD Library Functions Manual 				       OPENPAM_READWORD(3)

NAME
openpam_readword -- read a word from a file, respecting shell quoting rules LIBRARY
Pluggable Authentication Module Library (libpam, -lpam) SYNOPSIS
#include <sys/types.h> #include <stdio.h> #include <security/pam_appl.h> #include <security/openpam.h> char * openpam_readword(FILE *f, int *lineno, size_t *lenp); DESCRIPTION
The openpam_readword() function reads the next word from a file, and returns it in a NUL-terminated buffer allocated with malloc(3). A word is a sequence of non-whitespace characters. However, whitespace characters can be included in a word if quoted or escaped according to the following rules: o An unescaped single or double quote introduces a quoted string, which ends when the same quote character is encountered a second time. The quotes themselves are stripped. o Within a single- or double-quoted string, all whitespace characters, including the newline character, are preserved as-is. o Outside a quoted string, a backslash escapes the next character, which is preserved as-is, unless that character is a newline, in which case it is discarded and reading continues at the beginning of the next line as if the backslash and newline had not been there. In all cases, the backslash itself is discarded. o Within a single-quoted string, double quotes and backslashes are preserved as-is. o Within a double-quoted string, a single quote is preserved as-is, and a backslash is preserved as-is unless used to escape a double quote. In addition, if the first non-whitespace character on the line is a hash character (#), the rest of the line is discarded. If a hash charac- ter occurs within a word, however, it is preserved as-is. A backslash at the end of a comment does cause line continuation. If lineno is not NULL, the integer variable it points to is incremented every time a quoted or escaped newline character is read. If lenp is not NULL, the length of the word (after quotes and backslashes have been removed) is stored in the variable it points to. RETURN VALUES
If successful, the openpam_readword() function returns a pointer to a dynamically allocated NUL-terminated string containing the first word encountered on the line. The caller is responsible for releasing the returned buffer by passing it to free(3). If openpam_readword() reaches the end of the line or file before any characters are copied to the word, it returns NULL. In the former case, the newline is pushed back to the file. If openpam_readword() reaches the end of the file while a quote or backslash escape is in effect, it sets errno to EINVAL and returns NULL. IMPLEMENTATION NOTES
The parsing rules are intended to be equivalent to the normal POSIX shell quoting rules. Any discrepancy is a bug and should be reported to the author along with sample input that can be used to reproduce the error. SEE ALSO
openpam_readline(3), openpam_readlinev(3), pam(3) STANDARDS
The openpam_readword() function is an OpenPAM extension. AUTHORS
The openpam_readword() function and this manual page were developed by Dag-Erling Smorgrav <des@des.no>. BSD
September 12, 2014 BSD
Man Page