Назад к вопросам
Касперский
Junior — Middle
103
Возможно ли предотвратить обработку сигналов в программных приложениях?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
В программных приложениях на C/C++ можно предотвратить обработку сигналов, установив для них действие SIG_IGN (игнорирование). Это означает, что при получении сигнала программа не будет выполнять никакой обработчик и просто проигнорирует сигнал.
Пример игнорирования сигнала SIGINT (обычно Ctrl+C):
#include <signal.h>
#include <stdio.h>
int main() {
// Игнорируем сигнал SIGINT
signal(SIGINT, SIG_IGN);
printf("Попытка прервать программу с Ctrl+C будет проигнорирована.\n");
while(1) {
// бесконечный цикл
}
return 0;
}
Однако полностью "предотвратить" обработку сигналов нельзя, так как некоторые сигналы (например, SIGKILL и SIGSTOP) нельзя перехватить или игнорировать. Для остальных сигналов можно либо установить обработчик, либо игнорировать их.