in reply to Forking Question

Open a pipe to your child process then using fcntl do non-blocking reads (sysread) from the pipe. Then you can poll for 3 seconds and if nothing is read from the pipe, kill the child process

.

Just a tongue-tied, twisted, earth-bound misfit. -- Pink Floyd