add a character to a string, expanding the buffer if
openpam_straddch() function appends a character to a
dynamically allocated NUL-terminated buffer, reallocating the buffer as
The str argument points to a variable
containing either a pointer to an existing buffer or
NULL. If the value of the variable pointed to by
NULL, a new buffer is
The size and len
argument point to variables used to hold the size of the buffer and the
length of the string it contains, respectively.
The final argument, ch, is the character
that should be appended to the string. If ch is 0,
nothing is appended, but a new buffer is still allocated if
str is NULL. This can be used to
“bootstrap” the string.
If a new buffer is allocated or an existing buffer is reallocated
to make room for the additional character, str and
size are updated accordingly.
openpam_straddch() function ensures
that the buffer is always NUL-terminated.
openpam_straddch() function is
successful, it increments the integer variable pointed to by
len (unless ch was 0) and
returns 0. Otherwise, it leaves the variables pointed to by
str, size and
len unmodified, sets errno to
ENOMEM and returns -1.
openpam_straddch() function returns 0 on success and
-1 on failure.
openpam_straddch() function is an OpenPAM extension.
openpam_straddch() function and this manual page
were developed by Dag-Erling Smørgrav