Junior — Middle
É possível impedir o tratamento de sinais em aplicações de software?
sobes.tech IA
Resposta da IA
Nos aplicações de software em C/C++, é possível evitar o processamento de sinais definindo a ação SIG_IGN (ignorar). Isso significa que ao receber um sinal, o programa não executará nenhum manipulador e simplesmente ignorará o sinal.
Exemplo de ignorar o sinal SIGINT (geralmente Ctrl+C):
#include <signal.h>
#include <stdio.h>
int main() {
// Ignorar o sinal SIGINT
signal(SIGINT, SIG_IGN);
printf("A tentativa de interromper o programa com Ctrl+C será ignorada.\n");
while(1) {
// ciclo infinito
}
return 0;
}
No entanto, não é possível "prevenir" completamente o processamento de sinais, pois alguns sinais (por exemplo, SIGKILL e SIGSTOP) não podem ser interceptados ou ignorados. Para os outros sinais, é possível estabelecer um manipulador ou ignorá-los.