Сомневаюсь в SIGINT и SIG_IGN

Я прохожу курс по операционной системе, и, поскольку в качестве операционной системы используется Linux, нас учили с помощью программы, использующей SIGINT и SIG_IGN.

Когда я пытался запрограммировать код, указанный в моем компиляторе для ПК, появляется сообщение об ошибке, и оба они не могут быть найдены.

Как установить пакет для установки этих макросов? Или я должен сделать что-то другое, чтобы заставить их работать? Я использую Ubuntu 12.10

4
задан 11 April 2014 в 03:05

1 ответ

Для использования обоих сигналов, необходимо включать signal.h, как этот пример, взятый от страница Wikipedia, связанная с сигналами 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;
}
0
ответ дан 11 April 2014 в 03:05

Другие вопросы по тегам:

Похожие вопросы: