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

为当前最终发行版之前的所有版本提供支持
回复
zero_hsy
帖子: 37
注册时间: 2013-03-03 10:45
系统: ubuntu
送出感谢: 8 次
接收感谢: 0

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

#1

帖子 zero_hsy » 2013-04-05 9:25

看了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中读出一个个值输出到屏幕上呢?
头像
huangbster
帖子: 187
注册时间: 2012-10-29 11:35
系统: UBUNTU
送出感谢: 1 次
接收感谢: 3 次

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

#2

帖子 huangbster » 2013-04-05 14:14

对于:
int pipefd[2];
一个线程写pipefd[1];一个线程读pipefd[0];
man 2 pipe看看,里面有例子。
需要了解更多,可以man 2 read和man 2 write。
zero_hsy
帖子: 37
注册时间: 2013-03-03 10:45
系统: ubuntu
送出感谢: 8 次
接收感谢: 0

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

#3

帖子 zero_hsy » 2013-04-05 18:22

我知道pipefd[2],但是如何做到把一个个Int型数据一次又一次的写入????求帮助啊!!!!
头像
huangbster
帖子: 187
注册时间: 2012-10-29 11:35
系统: UBUNTU
送出感谢: 1 次
接收感谢: 3 次

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

#4

帖子 huangbster » 2013-04-05 19:50

man 2 write看看。
不过像你这种应用可能使用eventfd+共享内存比较适合。
zero_hsy
帖子: 37
注册时间: 2013-03-03 10:45
系统: ubuntu
送出感谢: 8 次
接收感谢: 0

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

#5

帖子 zero_hsy » 2013-04-06 10:42

恩,共享内存可以,我做过,但是老师作业一定要用管道来写,如果这样的话,用write()怎么写啊?
回复

回到 “老旧版本支持”