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

FreeBSD Manual Pages

  
 
  

home | help
KCGI_BUF_WRITE(3)	     Library Functions Manual	       KCGI_BUF_WRITE(3)

NAME
     kcgi_buf_write -- put binary data into a kcgi buffer

LIBRARY
     libkcgi

SYNOPSIS
     #include <sys/types.h>
     #include <stdarg.h>
     #include <stdint.h>
     #include <kcgi.h>

     enum kcgi_err
     kcgi_buf_write(const char *buf, size_t sz, void *arg);

DESCRIPTION
     Appends  binary  data  buf  of  size  sz  to arg, which is cast to a struct
     kcgi_buf *.  Buffers must be initialised to zero with  memset(3)  prior  to
     first  use.  The buffer will always be NUL-terminated.  Does nothing if buf
     is NULL or sz is zero.

     The struct kcgi_buf structure has the following fields:

     char *buf
	     Buffer contents.  This is always NUL-terminated, even if  the  data
	     is binary.  This buffer must be passed to free(3) after use.

     size_t maxsz
	     Allocated buffer size.

     size_t sz
	     Buffer current length not including the NUL terminator.

     size_t growsz
	     Amount  of  "slop" space in the buffer if it's reallocated.  If set
	     to zero, defaults to 1 KB.

RETURN VALUES
     These functions return an enum kcgi_err indicating the error state: KCGI_OK
     for no error, KCGI_ENOMEM for an internal memory allocation failure.

EXAMPLES
     The following creates a simple NUL-terminated buffer.  It does not  perform
     any error checking.

	   struct kcgi_buf buf;

	   memset(&buf, 0, sizeof(struct kcgi_buf));
	   kcgi_buf_write("xyzzy", 5, &buf);
	   puts(buf.buf); /* Emits "xyzzy" */
	   free(buf.buf);

SEE ALSO
     kcgi_buf_printf(3), kcgi_buf_putc(3), kcgi_buf_puts(3)

AUTHORS
     Written by Kristaps Dzonsons <kristaps@bsd.lv>.

FreeBSD ports 15.quarterly	   $Mdocdate$		       KCGI_BUF_WRITE(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=kcgi_buf_write&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help