How do I avoid zombies on a Unix system?

Use the reaper code from Signals to call wait when a SIGCHLD is received, or else use the double-fork technique described in fork.