char rbuf[64000]; FCGX_ParamArray env; FCGX_Init(); while(FCGX_Accept( &FCGI_stdin-fcgx_stream, &FCGI_stdout-fcgx_stream, &FCGI_stderr-fcgx_stream, &env ) = 0) { int charsRead = FCGX_GetStr(rbuf, sizeof(rbuf)-1, FCGI_stdin-fcgx_stream); rbuf[charsRead] = '0'; BuildResponse is the call into my game code const char resp = BuildResponse (rbuf, env); FCGX_PutStr (resp, strlen(resp), FCGI_stdout-fcgx_stream); }