Компилятор ругается на sigaction_t

Модератор: Модераторы разделов

knn
Сообщения: 1

Компилятор ругается на sigaction_t

Сообщение knn »

Здравствуйте!
Надо вывести информацию по 1-ым десяти сигналам. Вот код, который по идее это делает. Но он не компилируется, хотя, вроде, все правильно... Помогите, пожауйста, разобраться.
компилирую с ключами -ansi -pedantic -Wall -g

Код:

#define _POSIX_C_SOURCE 2 #include <stdio.h> #include <stdlib.h> #include <signal.h> #include <unistd.h> #include <sys/types.h> #include <string.h> volatile int count = 0; void handler(int sig_num, siginfo_t* siginfo, void* context) { count++; if (count <= 10) { printf("Number of signal: %d\nPid: %d\n", sig_num, siginfo->si_pid); } else { printf("You send more than 10 signals.\n"); exit(0); } } int main() { struct sigaction sa; memset(&sa, 0, sizeof(sa)); sa.sa_handler = NULL; sa.sa_sigaction = handler; sa.sa_flags = SA_SIGINFO; int i; /* SIGKILL = 9; SIGSTOP = 19; */ for (i = 0; i < 32; ++i) if (i != 19 && i != 9) { if (sigaction(i, &sa, NULL) < 0) { printf("Sigaction rror.\n"); return 1; } } while(1) {} return 0; }

Спасибо сказали:
Аватара пользователя
s.xbatob
Сообщения: 1139
ОС: Fedora

Re: Компилятор ругается на sigaction_t

Сообщение s.xbatob »

Наверное, потому, что вы для всех сигналов устанавливаете новую реакцию, а старой вообще не интересуетесь.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21350
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Компилятор ругается на sigaction_t

Сообщение Bizdelnick »

А сообщение об ошибке можно увидеть?

А, дошло.
(man sigaction) писал(а):

Код: Выделить всё

   Feature Test Macro Requirements for glibc (see feature_test_macros(7)):

       sigaction(): _POSIX_C_SOURCE >= 1 || _XOPEN_SOURCE || _POSIX_SOURCE

       siginfo_t: _POSIX_C_SOURCE >= 199309L
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали: