分页: 1 / 1

用pipe()实现父子进程的通信,但是有问题,求帮助

发表于 : 2013-04-05 9:25
zero_hsy
看了pipe()的功能,比如说写功能,在写的时候都是写入要写内容的首地址,但是如何把我计算的结果一个个写入pipe中,并输出到屏幕上呢?
比如说:

代码: 全选

int shm[66][66];
for (i=0;i<66;i++)
    for (j=0;j<66;j++)
        shm[i][j]=i;
   

如何把shm的值一个个写入pipe中呢?
然后如何从pipe中读出一个个值输出到屏幕上呢?

Re: 用pipe()实现父子进程的通信,但是有问题,求帮助

发表于 : 2013-04-05 14:14
huangbster
对于:
int pipefd[2];
一个线程写pipefd[1];一个线程读pipefd[0];
man 2 pipe看看,里面有例子。
需要了解更多,可以man 2 read和man 2 write。

Re: 用pipe()实现父子进程的通信,但是有问题,求帮助

发表于 : 2013-04-05 18:22
zero_hsy
我知道pipefd[2],但是如何做到把一个个Int型数据一次又一次的写入????求帮助啊!!!!

Re: 用pipe()实现父子进程的通信,但是有问题,求帮助

发表于 : 2013-04-05 19:50
huangbster
man 2 write看看。
不过像你这种应用可能使用eventfd+共享内存比较适合。

Re: 用pipe()实现父子进程的通信,但是有问题,求帮助

发表于 : 2013-04-06 10:42
zero_hsy
恩,共享内存可以,我做过,但是老师作业一定要用管道来写,如果这样的话,用write()怎么写啊?