Dúvida sobre SIGINT e SIG_IGN

4

Estou fazendo um curso sobre Sistema Operacional e, como o sistema operacional usado é o Linux, aprendemos com um programa usando SIGINT e SIG_IGN .

Quando eu tentei programar o código ensinado no meu compilador de PC indica uma mensagem de erro e ambos não podem ser encontrados.

Como instalar um pacote para instalar essas macros? Ou há algo diferente que eu deva fazer para que eles funcionem? Eu uso o Ubuntu 12.10

    
por anil 09.04.2014 / 14:16

1 resposta

6

Para usar os dois sinais, você precisa incluir signal.h , como este exemplo retirado da página da Wikipédia relacionada para sinais C:

#include <signal.h>
#include <stdio.h>
#include <stdlib.h>

static void catch_function(int signo) {
    puts("Interactive attention signal caught.");
}

int main(void) {
    if (signal(SIGINT, catch_function) == SIG_ERR) {
        fputs("An error occurred while setting a signal handler.\n", stderr);
        return EXIT_FAILURE;
    }
    puts("Raising the interactive attention signal.");
    if (raise(SIGINT) != 0) {
        fputs("Error raising the signal.\n", stderr);
        return EXIT_FAILURE;
    }
    puts("Exiting.");
    return 0;
}
    
por Sylvain Pineau 09.04.2014 / 14:25