Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
OPENPAM_STRADDCH(3)	 BSD Library Functions Manual	   OPENPAM_STRADDCH(3)

NAME
     openpam_straddch -- add a character to a string, expanding	the buffer if
     needed

SYNOPSIS
     #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);

DESCRIPTION
     The openpam_straddch() function appends a character to a dynamically al-
     located 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 allo-
     cated 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 inte-
     ger variable pointed to by	len (unless ch was 0) and returns 0.  Other-
     wise, it leaves the variables pointed to by str, size and len unmodified,
     sets errno	to ENOMEM and returns -1.

RETURN VALUES
     The openpam_straddch() function returns 0 on success and -1 on failure.

SEE ALSO
     pam(3), pam_strerror(3)

STANDARDS
     The openpam_straddch() function is	an OpenPAM extension.

AUTHORS
     The openpam_straddch() function and this manual page were developed by
     Dag-Erling	Smorgrav <des@des.no>.

BSD				April 30, 2017				   BSD

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | SEE ALSO | STANDARDS | AUTHORS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=openpam_straddch&sektion=3&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help