---
name: "cgi_parse"
section: "3"
platform: "linux"
package: "clearsilver-dev"
version: "0.10.5-6+b1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/cgi_parse"
---

# cgi\_parse(3)

Parse incoming CGI data

## NAME

cgi\_parse  - Parse incoming CGI data

## SYNOPSIS

```
#include <cgi/cgi.h>
```

```
NEOERR *cgi_parse (CGI *cgi);
```

## ARGUMENTS

cgi - a pointer to a CGI pointer

## DESCRIPTION

We split cgi\_init into two sections, one that parses\
 		just the basics, and the second is cgi\_parse.  cgi\_parse\
 		is responsible for parsing the entity body of the HTTP\
 		request.  This payload is typically only sent (expected)\
 		on POST/PUT requests, but generally this is called on\
 		all incoming requests.  This function walks the list of\
 		registered parse callbacks (see cgi\_register\_parse\_cb),\
 		and if none of those matches or handles the request, it

handlers:  \
 		  POST w/ application/x-www-form-urlencoded \
 		  POST w/ application/form-data\
 		  PUT w/ any content type\
 		In general, if there is no Content-Length, then\
 		cgi\_parse ignores the payload and doesn't raise an\
 		error.

## RETURN VALUE

Either data populated into files and cgi-\>hdf, or whatever\
 other side effects of your own registered callbacks.

## SEE ALSO

[**cgi\_debug\_init**(3)](/cgi_debug_init/3.md), [**cgi\_parse**(3)](/cgi_parse/3.md), [**cgi\_destroy**(3)](/cgi_destroy/3.md), **cgi\_js\_escape**(3), **cgi\_html\_escape\_strfunc**(3), **cgi\_register\_strfuncs**(3), [**cgi\_output**(3)](/cgi_output/3.md), **parse\_rfc2388**(3), [**cgi\_url\_validate**(3)](/cgi_url_validate/3.md), **open\_upload**(3), [**cgi\_cs\_init**(3)](/cgi_cs_init/3.md), [**cgi\_url\_escape\_more**(3)](/cgi_url_escape_more/3.md), **cgi\_html\_strip\_strfunc**(3), [**cgi\_neo\_error**(3)](/cgi_neo_error/3.md), [**cgi\_redirect**(3)](/cgi_redirect/3.md), [**cgi\_filehandle**(3)](/cgi_filehandle/3.md), [**cgi\_register\_parse\_cb**(3)](/cgi_register_parse_cb/3.md), [**cgi\_url\_escape**(3)](/cgi_url_escape/3.md), [**cgi\_init**(3)](/cgi_init/3.md), [**cgi\_redirect\_uri**(3)](/cgi_redirect_uri/3.md), [**cgi\_cookie\_clear**(3)](/cgi_cookie_clear/3.md), [**cgi\_url\_unescape**(3)](/cgi_url_unescape/3.md), [**cgi\_vredirect**(3)](/cgi_vredirect/3.md), [**cgi\_display**(3)](/cgi_display/3.md), **cgi\_html\_ws\_strip**(3), [**cgi\_error**(3)](/cgi_error/3.md), [**cgi\_cookie\_set**(3)](/cgi_cookie_set/3.md), **cgi\_text\_html\_strfunc**(3), **cgi\_cookie\_authority**
