我在进程1中创建了一个命名管道(mkfifo)并在其上写了一些东西。 现在我可以阅读流程2中流程1所写的内容。
现在我可以做一些事情(比如听)过程2知道过程1写了一些东西。
答案 0 :(得分:0)
答案 1 :(得分:0)
我不知道我是否真的得到了你的问题但是,如果你想要处理2知道进程1什么时候写东西,我建议你使用来自进程1的信号警告进程2事情已经准备就绪了(还有其他方法可以做到这一点)
既然您有两个进程ID(pid),您可以使用kill来发送准备好的消息,因此从已完成写入的进程中,它将是这样的:
kill(pid, SIGINT)
然后按您的意愿处理中断信号:
struct sigaction sigtohandle;
memset(& sigtohandle,0,sizeof(sigtohandle));
sigtohandle.sa_handler =& read_process;
sigaction(SIGINT,& sigtohandle,NULL);
因此,您将在信号接收器进程中拥有一个名为read_process()的函数,该函数可以完成您想要的工作。
您可以在此处阅读有关流程和信号的更多信息:
http://advancedlinuxprogramming.com/alp-folder/alp-ch03-processes.pdf