The foreground process will receive keyboard interrupts (ctrl-c). If the shell is the foreground process, its handler should just return.
How do you know if there is a foreground process?
What if you havent' written this correctly? How do you stop the shell if it is the foreground process and it isn't correctly implemented (ctrl-c will do nothing)?