A程序:
bool recvflag;
void sig_handle(void)
{
recvflag = true;
}
int main()
{
signal(SIGHUP,sig_handle);
while(1){
if(recvfla)
printf("hello\n");
}
return 0;
}
B程序:
int main()
{
....
dosomething;
system("kill -SIGHUP `ps -ef|grep A|awk '{print $1}'`);
.....
return 0;
} 直接mkfifo 用fifo实现非常简单啊,lz可以google下 如果用信号 A进程需要阻塞在那里等待信号到来,就需要考虑阻塞的方式,个人倾向于用信号灯,让内核去处理阻塞状态。 TCP和UDP都可以 pthread 有broadcast 和wait的相关函数,一个线程等待某个条件发生, 当另一个线程broadcast的时候,那个等待的线程就会被激活,然后就可以执行你要执行的打印语句了。当然socket网络编程也能够实现。
页:
1
[2]