На линуксе такой код не компилируется#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Чем объясняется такое поведение?
>#gcc -W -Wall -ansi -pedantic -g -o sig sig.cСам нарывался на такое, убирая -ansi все работало.