in reply to If not fork(), then what ?

As a work around, you could put a refresh in the page for every N seconds that refreshes to another CGI script. This script would check to see if your other script was finished and either return the 'results' page, or another refresh page. And, if your viewers need some eye candy, you can always put a javascript progress bar thingy on your page.

The other alternative is to use frames where one frame is the 'controller' and the other frame is the 'document' that shows the results page. The controller page contains javascript that calls your 'are-your-results-ready' script every N seconds, and updates the 'document' page with either the results page, using the results CGI URL, or a 'please wait longer' message.

--
hiseldl
What time is it? It's Camel Time!