Обработка сигнала в C - SIGTSTP не работает должным образом - PullRequest
0 голосов
/ 26 марта 2020

У меня проблемы с обработкой сигнала 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...