kcgi_buf_write - put binary data into a kcgi buffer


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 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 <[email protected]>. GNU $Mdocdate$ KCGI_BUF_WRITE(3)


Updated 2024-01-29 - jenkler.se | uex.se