У меня проблемы с обработкой сигнала SIGTSTP. В моем коде SIGINT и SIGTSTP должны влиять только на дочерний процесс. При нажатии Control + \ (SIGQUIT) программа (как дочерняя, так и родительская) должна завершиться. SIGINT и SIGQUIT оба работают нормально, но я не могу понять, почему SIGTSTP нет. Может кто-то указать мне верное направление?
void sigint_handler(long getpid, int signum) {
kill(getpid, signum);
}
void sigtstp_handler (long getpid, int signum) {
kill(getpid, signum);
printf("The process has been stopped");
}
.
pid = fork();
if (pid == 0) { /* this is child process */
signal(SIGINT, sigint_handler);
signal(SIGTSTP, sigtstp_handler);
execvp(argv[1], &argv[1]);
perror("execvp");
exit(-1);