2013-01-25 5 views

ответ

12

Вот что вы делаете:

signal(SIGINT, SIG_DFL); 

Это сбрасывает обработчик сигнала обратно в какое-либо поведение по умолчанию был для этого сигнала. В случае SIGINT он прерывает ваш процесс без основного дампа.

The manual for signal объясняет, почему это работает:

signal(signum, handler) задает расположение сигнала signum к handler, который является либо SIG_IGN, SIG_DFL, или адрес программиста определенных функций (а «обработчик сигнала») , ... Если уставка установлена ​​на SIG_DFL, то происходит действие по умолчанию, связанное с сигналом.

Вы также можете найти эту информацию, используя команду man. Если вы наберете man signal в командной строке и прочитаете, вы должны это увидеть.

+0

@jameshfisher - Спасибо за редактирование. Иногда меня расстраивают люди, которые не читают руководство. :-) – Omnifarious

Смежные вопросы