OPENPAM_READWORD(3) | Library Functions Manual | OPENPAM_READWORD(3) |
openpam_readword
—
#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);
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:
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 character 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.
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
.
openpam_readword
() function is an OpenPAM extension.
openpam_readword
() function and this manual page
were developed by Dag-Erling Smørgrav
<des@des.no>.
April 30, 2017 | NetBSD 9.0 |