Я прохожу курс по операционной системе, и, поскольку в качестве операционной системы используется Linux, нас учили с помощью программы, использующей SIGINT
и SIG_IGN
.
Когда я пытался запрограммировать код, указанный в моем компиляторе для ПК, появляется сообщение об ошибке, и оба они не могут быть найдены.
Как установить пакет для установки этих макросов? Или я должен сделать что-то другое, чтобы заставить их работать? Я использую Ubuntu 12.10
Для использования обоих сигналов, необходимо включать 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;
}