signal-Handling - Anzeige der maskierten Siganle



  • Hallo,

    mit der Funktion sigprocmask() ist es möglich, die maskierten/blockierten Signale
    zu ermitteln. Wenn der zweite Parameter NULL ist, werden die aktuellen Werte
    nach old_set geschrieben. Alles ok.
    Aber wie geht es weiter? Wie kann ich mir das Signale ausgegeben lassen? In der
    folgenden Form scheint es nicht korrekt zu sein, es sollte nur SIGINT maskiert sein.

    static void checkSignals(void) {
    
    	sigset_t new_set, old_set;
    
    	sigprocmask( SIG_BLOCK, NULL, &old_set);
    
    	printf ("%X\n", &old_set.ss_set[0]);
    	printf ("%X\n", &old_set.ss_set[1]);
    	printf ("%X\n", &old_set.ss_set[2]);
    	printf ("%X\n", &old_set.ss_set[3]);
    }
    

    Weiß jemand, wie die sigset_t - Struktur korrekt weiterzubearbeiten ist?

    Danke und Gruß
    D.E.



  • sigset_t ist das neuer standard ?
    mein compiler hat die nicht



  • helping händ schrieb:

    sigset_t ist das neuer standard ?
    mein compiler hat die nicht

    das ist posix-kram, einfach nur ein einfacher unsigned long.
    🙂



  • der op schreibt was von struktur, naja weiss auch nicht.



  • sigset_t wird unter AIX verwendet. Ich hab's mittlerweile in types.h entdeckt und
    anhand dessen weitergeforscht.

    Davon abgesehen gibt es auch sigismember(), mit denen man die einzelnen Signale
    ermitteln kann.

    Struktur war falsch, es ist, wie oben angegeben long, und damit war alles klar.

    Gruß
    D.E.



  • sigset_t wird unter AIX verwendet. Ich hab's mittlerweile in types.h entdeckt und
    anhand dessen weitergeforscht.

    Davon abgesehen gibt es auch sigismember(), mit denen man die einzelnen Signale
    ermitteln kann.

    Struktur war falsch, es ist, wie oben angegeben long, und damit war alles klar.

    Gruß
    D.E.



  • ahja, interessant,mal ganz was neues.


Anmelden zum Antworten