---
name: "cgiInit"
section: "3"
platform: "linux"
package: "cgilib"
version: "0.6-1.1+b1"
release: "Debian 11 (Bullseye)"
platforms: ["linux"]
url: "https://new.carta.tech/cgiInit"
---

# cgiInit(3)

Initializes CGI library

## NAME

cgiInit - Initializes CGI library

## SYNOPSYS

```
#include <cgi.h>

s_cgi *cgiInit ();
```

## DESCRIPTION

This routine initializes the CGI routines.  Mainly it reads in and decodes CGI data for later processing.  If the program is not called via CGI interface the user is prompted to type in CGI variable bindings via stdin - just like CGI.pm does.  There is no limit in the number of variable bindings.

If HTTP Cookies are used (through the variable HTTP\_COOKIE) this routine will parse them as well and assign them to internal variables. There is no limit in the number of cookies.

To set a cookie you'll have to use the [**cgiSetHeader**(3)](/cgiSetHeader/3.md) routine.  Some clients allow 4kB of Cookies while others only allow short ones.  Some clients may also allow only 200 Cookies for a certain domain/path pair.

This routine normally is the first or second that is called from this library.  Only **cgiDebug**() may be called before.  If debugging is enabled this routine produces some additional output.

The library supports both the regular GET and POST methods as well as multipart/form-data.

Memory allocated by this library is freed with the [**cgiFree**(3)](/cgiFree/3.md) function.

## RETURN VALUE

On success a set of CGI variable bindings is returned that is needed for later processing.  If an error occurs NULL is returned.

## AUTHOR

This CGI library is written by Martin Schulze \<joey@infodrom.org\>.  If you have additions or improvements please get in touch with him.

## SEE ALSO

[**cgiDebug**(3)](/cgiDebug/3.md), [**cgiSetType**(3)](/cgiSetType/3.md), [**cgiSetHeader**(3)](/cgiSetHeader/3.md), [**cgiHeader**(3)](/cgiHeader/3.md), [**cgiGetValue**(3)](/cgiGetValue/3.md), [**cgiGetVariables**(3)](/cgiGetVariables/3.md) [**cgiGetCookie**(3)](/cgiGetCookie/3.md), [**cgiGetCookies**(3)](/cgiGetCookies/3.md), [**cgiFree**(3)](/cgiFree/3.md), [**cgi**(5)](/cgi/5.md).
