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
       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 per-
       form 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 14.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+14.3.quarterly>

home | help