Signalhandler in Unix !?



  • Könnte mir bitte jemand schnelle die folgende Code Zeile erklären ?

    void(*signal(int signum,void(*func)(int)))(int);
    

    Ist das ein Zeiger auf eine Funktion die nichts zurück liefert und einen Integer übernimmt ?
    Aber wofür steht dann das int signum und der andere Zeiger auf eine Funktion ?



  • Das ist eine Funktion, die einen Integer und einen Zeiger auf eine Funktion mit der Signatur void(int) erwartet und einen Zeiger auf eine Funktion mit der Signatur void(int) zurückgibt. So ist es vielleicht verständlicher:

    typedef void (*sighandler_t)(int);
    
    sighandler_t signal(int, sighandler_t);
    

Anmelden zum Antworten