signal.h



  • Hi alle miteinander, ich bins scho wieder.

    Gibt's irgendeine funktion mit der ich mein Programm anweisen kann alle signale zu ignorieren (ausser die, die ich als != root sowieso nicht beeinflussen kann wie z.b. Sigkill). Weil ich hab keine Lust die ganzen signale von hand auf signal(xxx, SIG_IGN) zu setzten. Ich habs mir schon überlegt in ner schleife. also z.b. so:

    int sig = 0;
    
    for(sig = 0; sig <= 100, sig++)
    {
       signal(sig, SIG_IGN);
    }
    

    aber das ifinde ich ziemlich unschön, und ich weis nicht ob das Funktioniert, habs no net ausprobiert.



  • Nur so aus neugier, wieso willst du denn *alle* Signale ignorieren?

    Ich glaube nicht das es geht. Ist aber auch kein Problem mittels copy&paste die entsprechenden signal-Aufrufe in's Programm aufzunehmen.



  • Jo wieso alle? I hab mir da a kleines Progrämmche geschreiben, und des
    läuft mit Ncurses. Und wenn du jetzt dem Progrämmche ein Signal sendest um
    sich zu beenden, ist das Terminal unbrauchbar. D.h. du musst erst wieder ein
    reset eingeben, sonst verspult es das Term. Ja und so wollt ich halt die
    signale die ich != root ignorieren darf ignorieren. Mit der Schleife funktioniert das zwar, aber vielleicht gibts da ja no ein anderen Weg.



  • Na ich weiß nicht. Alle Signale brauchst du ja trotztdem nicht ignorieren.

    Aber egal, vim-Makros machen spaß 😉

    signal(SIGHUP, SIGIGN);
    signal(SIGINT, SIGIGN);
    signal(SIGQUIT, SIGIGN);
    signal(SIGILL, SIGIGN);
    signal(SIGABRT, SIGIGN);
    signal(SIGFPE, SIGIGN);
    signal(SIGKILL, SIGIGN);
    signal(SIGSEGV, SIGIGN);
    signal(SIGPIPE, SIGIGN);
    signal(SIGALRM, SIGIGN);
    signal(SIGTERM, SIGIGN);
    signal(SIGUSR1, SIGIGN);
    signal(SIGUSR2, SIGIGN);
    signal(SIGCHLD, SIGIGN);
    signal(SIGCONT, SIGIGN);
    signal(SIGSTOP, SIGIGN);
    signal(SIGTSTP, SIGIGN);
    signal(SIGTTIN, SIGIGN);
    signal(SIGTTOU, SIGIGN);
    


  • Jo, genau so wollt i es net machen. Dann nehm i doch lieber die schleife.

    weil schau dir mal pman 7 signal (Linux RedHat 7.3 englisch) an. da gibt es no viele viele mehr.


Anmelden zum Antworten