Begin by reading the manual pages for signal (man signal) and wait (Linux: man 2 wait; Unix: man -s 3C wait).
Write a C/C++ program called [url removed, login to view] that waits a brief period of time (10 seconds; using the sleep function) to simulate a daemon process initializing and then waiting for an incoming request.
After this period, the parent process should fork/exec (don't use the system() function call) a child process (call it [url removed, login to view]). The parent process should then sleep for a longer period of time (2 minutes).
The parent process should determine when the child process exits. The parent process should report the child's PID and it's return/exit status.
The child process should also sleep for a period of time (30 seconds) to simulate a child process performing some work on behalf of the user. After the child process wakes up, it should simply exit with a value of 53.
At each step, both processes should output an informational message to help us understand what is happening, such as the following:
parent: forking child
child: going to sleep