I am reading about interrupts and signals and have problem with understanding the following scenario.
Suppose the shell executing some command, then the shell process doing
wait() commands while the child process is doing
execv() command with the new code address to run.
Now, suppose that I press Ctrl C inside the shell then I assume that an interrupt from the keyboard will arrive to the child process and the relevant interrupt handler will be invoked.
Now, My problem is with understanding how the
SIGINT signal is sent to the child (I read somewhere that it is sent from the father process i.e. the shell process) and how the shell is running again (who is waking him up?).
Another issue is that I read that if some signal handlers aren't declared in the Task Process Descriptor then it is searching for signal handlers in the father process, is that true?