Compiler Warnung bei Signalhandler Zuweisung
-
Hallo,
der Compiler meckert mit einer Warnung:
Warnung: assignment from incompatible pointer type
bei der Zuweisung:
sa.sa_handler = sig_child_handler;
sig_child_handler ist einfach ein Funktionsname, also keine Variable. So macht man das ja, aber wie bekomm ich die Warnung weg?
-
&sig_child_handler
-
Wenn sig_child_handler der Funktionsname ist, dann nicht.
@ deetee: Zeig doch mal genau die Definitionen der Struktur und der Funktion.
-
Mit dem Adressoperator hat's nicht geklappt. Keine Änderung an der Meldung.
void init_signal_handler(int signal) { struct sigaction sa; sigset_t sigmask; memset(&sa, 0, sizeof(sa)); sa.sa_handler = sig_child_handler; sa.sa_mask = sigmask; sa.sa_flags = SA_NOCLDSTOP; Sigaction(signal, &sa, NULL); }
static void sig_child_handler(void) { Wait(NULL); }
-
Versuch mal
anstattstatic void sig_child_handler(void) { Wait(NULL); }
static void sig_child_handler(int sig) { Wait(NULL); }
-
das wars. vielen dank.