На линуксе такой код не компилируется
#include <stdio.h>
#include <signal.h>
void
mode_off()
{
}
int
main(void)
{
static struct sigaction act;
act.sa_handler = mode_off;
sigfillset(&(act.sa_mask));
sigaction(SIGINT, &act, NULL);
return 0;
}
#gcc -W -Wall -ansi -pedantic -g -o sig sig.c
sig.c: In function `main':
sig.c:12: storage size of `act' isn't known
sig.c:15: warning: implicit declaration of function `sigfillset'
sig.c:16: warning: implicit declaration of function `sigaction'
sig.c:12: warning: unused variable `act'
sig.c:12: storage size of `act' isn't known
также пробовал -std=с99
Но зато успешно компилируется с -posix либо так:
gcc -W -Wall -D__USE_POSIX -pedantic -g
Чем объясняется такое поведение?