Sobes.tech
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.