Ich habe 2 Prozess lässt sagen A und B. Prozess A wird die Eingabe vom Benutzer und einige Verarbeitung erhalten.So senden Sie eine Benachrichtigung an einen anderen Prozess von innen Signal-Handler?
Es gibt keine Eltern/Kind-Beziehung zwischen Prozess A und B.
Wenn Verfahren A durch ein Signal getötet, Gibt es eine Möglichkeit, die Nachricht B von innen Signal-Handler zu verarbeiten senden kann?
Hinweis: Für meine Anforderung ist es in Ordnung, dass, sobald ich fertig mit der Verarbeitung bereits Eingang vom Benutzer erhalten und aus der Hauptschleife verlassen, wenn SIGHUP-Signal empfangen wird.
Ich habe folgende Idee in meinem Kopf. Gibt es einen Fehler in diesem Design?
Prozess A
#include <stdio.h>
#include <signal.h>
int signal;// variable to set inside signal handler
sig_hup_handler_callback()
{
signal = TRUE;
}
int main()
{
char str[10];
signal(SIGHUP,sig_hup_handler_callback);
//Loops which will get the input from the user.
while(1)
{
if(signal == TRUE) { //received a signal
send_message_to_B();
return 0;
}
scanf("%s",str);
do_process(str); //do some processing with the input
}
return 0;
}
/*function to send the notification to process B*/
void send_message_to_B()
{
//send the message using msg que
}