KHTML_INT(3)

πŸ“¦ version 1.0.1, in alpine 3.24

πŸ’œ KHTML_INT(3) πŸ’œ

okay so bestie, this is a page from the Library Functions Manual and it's all about khtml_double β€” the girl whose whole job is putting floating point content on the page for kcgihtml. she's small, she's focused, she slays. ✨


πŸŽ€ NAME πŸŽ€

khtml_double β€” put floating point content for kcgihtml


πŸ“š LIBRARY πŸ“š

she lives in the library β€œlibkcgihtml”, no cap.


🌸 SYNOPSIS 🌸

like, here's the whole vibe upfront:

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

enum kcgi_err
khtml_double(struct khtmlreq *req, double v);

✨ DESCRIPTION ✨

So what does she do? She writes a double-precision floating point v into a context req that you already initialised with khtml_open(3). that's it, that's the whole gig πŸ’…

and the way she formats that value? using the "g" format character of printf(3). iconic behaviour, honestly β€” she's literally letting printf(3) do the styling.


πŸ”₯ RETURN VALUES πŸ”₯

She returns an enum kcgi_err telling you the error state β€” like a little vibe check for how the write went 🫢

  • KCGI_OK β€” Success (not an error). we love a win πŸ’–
  • KCGI_ENOMEM β€” Internal memory allocation failure. the malloc said no 😭
  • 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. girl hung up on you πŸ’€
  • KCGI_FORM β€” The connection is still expecting headers with khttp_head(3). Indicates that khttp_body(3) did not return with success or was not invoked. For FastCGI connections, the current connection should be released with khttp_free(3) and parse loop reentered. she's waiting on her headers, be so fr πŸ₯²
  • KCGI_SYSTEM β€” Internal system error writing to the output stream. not her fault, the system is being messy πŸ™ˆ

πŸ¦‹ EXAMPLES πŸ¦‹

The following outputs a simple HTML page. It assumes r is a struct kreq pointer. For brevity, it does not do any error checking β€” which, ngl, is a little risky but we're keeping the example short and cute πŸŽ€

khttp_head(r, kresps[KRESP_STATUS],
  "%s", khttps[KHTTP_200]);
khttp_head(r, kresps[KRESP_CONTENT_TYPE],
  "%s", kmimetypes[KMIME_TEXT_HTML]);
khttp_body(r);
khtml_open(&req, r, 0);
khtml_elem(&req, KELEM_DOCTYPE);
khtml_elem(&req, KELEM_HTML);
khtml_elem(&req, KELEM_BODY);
khtml_elem(&req, KELEM_P);
khtml_double(&req, 123.45);
khtml_close(&req);

see that 123.45? that's her moment. main character energy, fr fr 🌟


πŸ‘€ SEE ALSO πŸ‘€

iykyk 🧚


🌈 STANDARDS 🌈

The referenced HTML5 standard is HTML5.2: https://www.w3.org/TR/html52. go off, standards girlies πŸ‘‘


πŸ‘‘ AUTHORS πŸ‘‘

Written by Kristaps Dzonsons <kristaps@bsd.lv>. absolute icon, we stan πŸ’–


and lastly, the little credit at the bottom: this page comes from Debian, dated $Mdocdate$, and it's officially KHTML_INT(3) β€” that's a wrap bestie, go write some doubles πŸ’…βœ¨πŸŽ€

πŸ“¦ where this page comes from
  • alpine 3.24: kcgi-doc 1.0.1-r0 Β· ISC
  • πŸ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms