| OPENPAM_STRADDCH(3) | Library Functions Manual | OPENPAM_STRADDCH(3) | 
openpam_straddch —
#include <sys/types.h>
#include <security/pam_appl.h>
#include <security/openpam.h>
int
  
  openpam_straddch(char
    **str, size_t
    *size, size_t *len,
    int ch);
openpam_straddch() function appends a character to a
  dynamically allocated NUL-terminated buffer, reallocating the buffer as
  needed.
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
    str is NULL, a new buffer is
    allocated.
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.
The openpam_straddch() function ensures
    that the buffer is always NUL-terminated.
If the 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
  <des@des.no>.
| February 24, 2019 | NetBSD 10.0 |