Nota che utilizzando la chiamata di sistema sigqueue(), è possibile passare un ulteriore pezzo di dati con il vostro segnale. Ecco una breve citazione da "man 2 sigqueue":
L'argomento valore viene utilizzato per specificare un elemento di accompagnamento dei dati (sia un intero o un valore di puntatore) per essere inviato con il segnale, e ha il tipo seguente:
union sigval {
int sival_int;
void *sival_ptr;
};
Questo è un modo molto conveniente per passare un piccolo pezzo di informazioni tra 2 processi. Sono d'accordo con l'utente sopra - usa SIGUSR1 o SIGUSR2 e un buon segnale, e puoi passare quello che vuoi.
È anche possibile passare un puntatore a un oggetto nella memoria condivisa tramite sival_ptr e passare in questo modo un oggetto più grande.
Voglio aggiungere: non è consigliabile usarli, perché sono segnali standard. è meglio usare i segnali in tempo reale, che iniziano da SIGTRMIN. hanno alcuni importanti vantaggi. – Tebe