Wie die sa_mask in sigset_t?

gcc (GCC) 4.6.0
c89

Habe ich einen signal-handler deklariert wie diese:

   /* Setup signal handler */
    struct sigaction new_action;
    new_action.sa_handler = g_signal_handler;
    new_action.sa_flags = SA_ONSTACK;

    if(sigaction(SIGINT, &new_action, NULL) == -1) {
        fprintf(stderr, "Failed to setup signal handlers.");
        return -1;
    }

Wenn ich meinen code durch valgrind d.h. valgrind --leak-check=full es nahm die folgende Fehlermeldung:

==5206== Syscall param rt_sigaction(act->sa_mask) points to uninitialised byte(s)
==5206==    at 0x347A435455: __libc_sigaction (in /lib64/libc-2.14.so)

So aftering Blick auf die man-pages habe ich beschlossen, wie diese, nur zum testen mit:

new_action.sa_mask = SA_NODEFER;

Jedoch, dass geben Sie mir nur die folgende Fehlermeldung:

error: incompatible types when assigning to type __sigset_t from type int

Vielen Dank für alle Anregungen,

InformationsquelleAutor ant2009 | 2011-08-06

Schreibe einen Kommentar