FreeBSD Manual Pages
KXML_PUTS(3) Library Functions Manual KXML_PUTS(3) NAME kxml_write -- put content data for kcgixml LIBRARY libkcgixml SYNOPSIS #include <sys/types.h> #include <stdarg.h> #include <stdint.h> #include <kcgi.h> #include <kcgixml.h> enum kcgi_err kxml_write(const char *buf, size_t sz, void *arg); DESCRIPTION Writes binary data buf of length sz to a context arg, a struct kxmlreq ini- tialised with kxml_open(3) and passed as an opaque pointer. If buf is NULL or sz is zero, does nothing and returns success. All of the content is XML escaped. RETURN VALUES Returns an enum kcgi_err indicating the error state. KCGI_OK Success (not an error). KCGI_ENOMEM Internal memory allocation failure. KCGI_HUP The output connection has been terminated. For FastCGI connections, the current connection should be released with khttp_free(3) and parse loop reentered. KCGI_FORM The connection is still expecting headers with khttp_head(3). Indi- cates that khttp_body(3) did not return with success or was not in- voked. For FastCGI connections, the current connection should be re- leased with khttp_free(3) and parse loop reentered. KCGI_SYSTEM Internal system error writing to the output stream. EXAMPLES The following outputs a simple XML page. It assumes r is a struct kreq pointer. For brevity, it does not do any error checking. const char *const elems[] = { "foo", "bar", "baz" }; khttp_head(r, kresps[KRESP_STATUS], "%s", khttps[KHTTP_200]); khttp_head(r, kresps[KRESP_CONTENT_TYPE], "%s", kmimetypes[KMIME_TEXT_XML]); khttp_body(r); kxml_open(&req, r, elems, 3); kxml_push(&req, 0); /* foo */ kxml_puts(&req, "Hello, world"); kxml_close(&req); SEE ALSO kcgixml(3) AUTHORS Written by Kristaps Dzonsons <kristaps@bsd.lv>. FreeBSD ports 15.quarterly $Mdocdate$ KXML_PUTS(3)
NAME | LIBRARY | SYNOPSIS | DESCRIPTION | RETURN VALUES | EXAMPLES | SEE ALSO | AUTHORS
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=kxml_write&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>
