Для программирования на Linux C у меня есть этот обработчик и основной метод:
void handler(int number, signinfo_t, void *ignore){
printf("Signaling %d\n", si->si_pid);
}
int main(){
struct sigaction sig;
sig.sa_flags = SA_SIGINFO;
sigemptyset(&sig.sa_mask);
sig.sa_handler = handler // This line has error
Если я создаю обработчик только с одним параметром void handler(int num)
, он работает нормально;однако я не смогу использовать si->si_pid
.Я получаю предупреждение:
warning: assignment to __sighandler_t from an incompatible pointer type
-Wincompatible-pointer-types
sig.sa_handler = handler;
Вместо этого я делаю sig.sa_action
?Я хочу исправить предупреждение