Tenga en cuenta que mediante el uso de la llamada al sistema sigqueue(), puede pasar una pieza extra de datos junto con su señal. He aquí una breve cita de "hombre 2 sigqueue":
El argumento de valor se utiliza para especificar un elemento de acompañamiento de los datos (ya sea un entero o un valor de puntero) para ser envió con la señal, y tiene el tipo siguiente:
union sigval {
int sival_int;
void *sival_ptr;
};
Esta es una forma muy conveniente para pasar un pequeño fragmento de información entre 2 procesos. Estoy de acuerdo con el usuario anterior: use SIGUSR1 o SIGUSR2 y una buena señal, y puede pasar lo que quiera.
También podría pasar un puntero a algún objeto en la memoria compartida a través del sival_ptr, y pasar un objeto más grande de esa manera.
Quiero agregar: no es aconsejable usarlos, porque son señales estándar. es mejor usar señales en tiempo real, que comienzan desde SIGTRMIN. ellos tienen algunas ventajas importantes. – Tebe