cgi_destroy(3)

πŸ’– cgi_destroy(3) πŸ’–

okay bestie, so this one lives in the cgi/cgi.h world β€” it's a ClearSilver joint, and it's literally the cleanup crew of the CGI universe. you built a whole CGI, you did the thing, and now somebody's gotta take out the trash. that's her. that's cgi_destroy. πŸŽ€


✨ NAME ✨

cgi_destroy β€” deallocate the data associated with a CGI

no cap, that's the whole gig. she frees the stuff. 🧚


🌸 SYNOPSIS 🌸

#include <cgi/cgi.h>

void cgi_destroy (CGI **cgi);

so you pull in the header, you call her with a pointer-to-a-pointer, and she returns void β€” nothing back, she's not here to chat, she's here to clean. πŸ’…


πŸ¦‹ ARGUMENTS πŸ¦‹

  • cgi β€” a pointer to a pointer to a CGI struct. yes girl, double pointer. that's not a typo, that's the whole bit, and it matters (see RETURN VALUE below, she's about to do something to it πŸ‘€).

πŸ‘‘ DESCRIPTION πŸ‘‘

cgi_destroy will destroy all the data associated with a CGI. all of it. everything. she is thorough and she is not sentimental. πŸ’€

mostly that means:

  • the associated HDF, gone
  • removal of any files that were uploaded via multipart/form-data, also gone
and here's the iconic part, bestie β€” even in the event of a crash, those files will be deleted. why? because they were unlinked on creation, and they only exist in the first place because of the open file pointer. so the second that pointer situation ends, the files are out. they were never really yours, they were just visiting. 🌈✨

πŸ’œ RETURN VALUE πŸ’œ

  • cgi β€” NULL on output.

she nulls out your pointer for you on the way out, which is exactly why she needed that pointer-to-a-pointer. she's tidying up and making sure you can't poke at the corpse. thoughtful. 🫢


πŸ“ SEE ALSO πŸ“

cgi_debug_init(3), cgi_parse(3), cgi_destroy(3), cgi_js_escape(3), cgi_html_escape_strfunc(3), cgi_register_strfuncs(3), cgi_output(3), parse_rfc2388(3), cgi_url_validate(3), open_upload(3), cgi_cs_init(3), cgi_url_escape_more(3), cgi_html_strip_strfunc(3), cgi_neo_error(3), cgi_redirect(3), cgi_filehandle(3), cgi_register_parse_cb(3), cgi_url_escape(3), cgi_init(3), cgi_redirect_uri(3), cgi_cookie_clear(3), cgi_url_unescape(3), cgi_vredirect(3), cgi_display(3), cgi_html_ws_strip(3), cgi_error(3), cgi_cookie_set(3), cgi_text_html_strfunc(3), cgi_cookie_authority

(yes, cgi_cookie_authority is just sitting there at the end with no (3) and no shame. we love her. we respect her. she's built different. πŸ™ˆ)


and that's the page, babe. this one's brought to you by ClearSilver, dated 12 July 2007 β€” an actual classic, an OG, still serving cgi_destroy(3) realness. mwah. πŸ’‹πŸ’–