Ctrl + C не отправляет SIGKILL для обработки - PullRequest
1 голос
/ 28 марта 2012

Я попытался реализовать эту функцию:

void alarm_handler(int signal)
{
    if(signal==SIGKILL)
    {
        fprintf(stderr,"Process killed\n");
        exit(SIGKILL);
    }
}

И использовал ее в основном таким образом:

signal(SIGKILL,alarm_handler);

Так что, если я нажму Ctrl + C, перед выходом он напечатает "Процесс убит ", но id его не печатает. Почему?

Ответы [ 2 ]

13 голосов
/ 28 марта 2012

Ctrl + C обычно отправляет SIGINT, а не SIGKILL.

3 голосов
/ 28 марта 2012

Сигналы SIGKILL и SIGSTOP не могут быть пойманы, заблокированы или проигнорированы.

Используйте SIGINT.

...