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

# cgiwrap\_init\_emu(3)

initialize cgiwrap for emulated use

## NAME

cgiwrap\_init\_emu  - initialize cgiwrap for emulated use

## SYNOPSIS

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

```
void cgiwrap_init_emu (void *data, READ_FUNC read_cb,
    WRITEF_FUNC writef_cb, WRITE_FUNC write_cb, GETENV_FUNC getenv_cb,
    PUTENV_FUNC putenv_cb, ITERENV_FUNC iterenv_cb);
```

## ARGUMENTS

data - user data to be passed to the specified callbacks\
 read\_cb - a cb to replace fread(stdin)\
 writef\_cb - a cb to repalce fprintf(stdout)\
 write\_cb - a cb to replace fwrite(stdout)\
 getenv\_cb - a cb to replace getenv\
 putenv\_cb - a cb to replace putenv\
 iterenv\_cb - a cb to replace the default environment iteration\
 function (which just wraps walking the envp array)

## DESCRIPTION

cgiwrap\_init\_emu sets up the cgiwrap subsystem for use in an emulated environment where you are providing routines to use in place of the standard routines, ie when used to interface with a server or scripting language. See cgi/cgiwrap.h for the exact definitions of the callback functions.

## RETURN VALUE

None

## SEE ALSO

[**cgiwrap\_iterenv**(3)](/cgiwrap_iterenv/3.md), [**cgiwrap\_putenv**(3)](/cgiwrap_putenv/3.md), [**cgiwrap\_init\_emu**(3)](/cgiwrap_init_emu/3.md), [**cgiwrap\_writef**(3)](/cgiwrap_writef/3.md), [**cgiwrap\_init\_std**(3)](/cgiwrap_init_std/3.md), [**cgiwrap\_writevf**(3)](/cgiwrap_writevf/3.md), [**cgiwrap\_read**(3)](/cgiwrap_read/3.md), [**cgiwrap\_write**(3)](/cgiwrap_write/3.md), **cgiwrap\_getenv**
