Chinaunix

标题: 进程间怎么通信? [打印本页]

作者: yjchlove    时间: 2012-08-22 16:37
标题: 进程间怎么通信?
现在有一个要求

两个程序,程序a,程序b

程序a是个等待程序。当程序b传给a信号是,就打印信息。


这个程序,怎么个写法?


谢谢给点思路。




作者: _Rayx    时间: 2012-08-22 17:05
UNP卷二:进程间通信


作者: yjchlove    时间: 2012-08-22 17:33

在问一个问题。

我写了

process1
    main()
    {

        while(1)
        {
                printf("Ok");
        }

    }


我把写好的程序编译好,放到了.profille
里面去了。那个


printf
打印的内容,我在看得到?


作者: dengxiayehu    时间: 2012-08-25 13:45
哦,原由在这里~

嗯,进程间通信的东西,了解一下,方法很多。
作者: xiyoulaoyuanjia    时间: 2012-08-25 22:53
IPC  方法确实比较多~~~   
作者: sulilo    时间: 2012-08-27 10:45
用信号灯吧。

作者: liuchang8877    时间: 2012-08-31 15:13
IPC, 有很多种,共享内存, socket,信号,信号量,管道,消息队列。
作者: dufanbao    时间: 2012-09-16 11:07
用命名管道吧,满足你的要求!!!!
作者: abren7758521    时间: 2012-09-20 17:05
共享内存不错  
作者: device_memory    时间: 2012-09-25 08:47
unix网络编程      
作者: device_memory    时间: 2012-09-25 08:48
很多种方法        
作者: greatliu1990    时间: 2012-09-28 16:17
信号方式:

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;
}
作者: zafu10    时间: 2012-10-02 11:39
直接mkfifo 用fifo实现非常简单啊,lz可以google下
作者: float001    时间: 2012-10-12 14:40
如果用信号 A进程需要阻塞在那里等待信号到来,就需要考虑阻塞的方式,个人倾向于用信号灯,让内核去处理阻塞状态。
作者: _Stone    时间: 2012-10-20 22:35
TCP和UDP都可以
作者: shenyanxxxy    时间: 2012-12-20 21:32
pthread 有broadcast 和wait的相关函数,一个线程等待某个条件发生, 当另一个线程broadcast的时候,那个等待的线程就会被激活,然后就可以执行你要执行的打印语句了。当然socket网络编程也能够实现。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2