A value of -1 is returned in the case of failure. The different return code for parent and child allows for code to identify whether it is the parent or child process. Quite often an execl call is made to replace the child process. This function only returns if something failed since the process should be overlayed. If the function returns it gives a value of -1.
Execution resumes from the function call when the time has passed.
This function returns a zero if it is returning from a storage call. The longjmp function is used to restore the system information, thus returning it to the setjmp call. The function returns a non-zero value specified in the longjmp call when the it is being returned to from the longjmp call.