gcc (GCC) 4.6.0
c89
У меня есть обработчик сигнала, объявленный так:
/* Setup signal handler */
struct sigaction new_action;
new_action.sa_handler = g_signal_handler;
new_action.sa_flags = SA_ONSTACK;
if(sigaction(SIGINT, &new_action, NULL) == -1) {
fprintf(stderr, "Failed to setup signal handlers.");
return -1;
}
Когда я запускал свой код через valgrind, т.е. valgrind --leak-check=full
он обнаружил следующую ошибку:
==5206== Syscall param rt_sigaction(act->sa_mask) points to uninitialised byte(s)
==5206== at 0x347A435455: __libc_sigaction (in /lib64/libc-2.14.so)
Поэтому, посмотрев справочные страницы, я решил установить вот так, просто чтобы проверить:
new_action.sa_mask = SA_NODEFER;
Однако, это просто дает мне следующую ошибку:
error: incompatible types when assigning to type ‘__sigset_t’ from type ‘int’
Большое спасибо за любые предложения,