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 fork() + 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?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.