KHTTP_FREE(3) Library Functions Manual KHTTP_FREE(3)

khttp_free, khttp_child_freefree a CGI instance for kcgi

library “libkcgi”

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

khttp_free(struct kreq *req);

khttp_child_free(struct kreq *req);

The () and khttp_child_free() functions free the resources of req allocated by khttp_parse(3) or khttp_fcgi_parse(3), flushing the HTTP data stream in the process. After calling this function, the members of req should not be used and the function should not be called again.

The () function performs the same operations as khttp_free(), but does not flush the HTTP data stream. Thus, it may be used after invoking fork(2) without confusing the output buffer.

: if you're forking within your CGI application, be aware of some caveats. Most web servers will continue to wait while stdout, stderr, and stdin are open to the CGI application. Thus, if you fork a long-running application, you must close out these file descriptors.

kcgi(3), khttp_parse(3)

The khttp_free() and khttp_child_free() functions were written by Kristaps Dzonsons <>.

December 2, 2023 OpenBSD 7.4