我正试图从parrent进程向子进程发送一个用户定义的(SIGUSR1或SIGUSR2)信号。子进程接收到信号后,会等待5秒钟,并将另一个用户定义的信号发送给parrent进程。当parrent进程接收到信号时,它会向屏幕写入一个字符串。我不知道如何做到这一点。我正试图在Linux终端上做到这一点。这里是我的代码:在父进程和子进程之间发送信号
#include
#include
#include
#include
#include
void wait_function(int signal_1)
{
signal(SIGUSR1,wait_function);
if(signal_1==SIGUSR1)
{
sleep(5);
}
}
void writeSomethingOnScreen(int signal_2)
{
signal(SIGUSR2,createAndWrite);
if(signal_2==SIGUSR2)
{
printf("Hello Stackoverflow!");
}
}
main()
{
pid_t pid;
pid=fork();
if(pid==0)/*child*/
{
signal(SIGUSR1,wait_function);
pause();
kill(getppid(),SIGUSR2);
exit(254);
}
if(pid>0)/*parent*/
{
signal(SIGUSR2,writeSomethingOnScreen);
kill(pid,SIGUSR1);
}
}
2014-05-05
Curious