【发布时间】:2011-10-09 13:34:19
【问题描述】:
我在 linux 下用 c++ 编写了一个程序,其中子进程应该将两个长值写入管道,父进程应该读取它们。到目前为止,我 onlz 设法为此设置了两个(命名的)管道,并通过 write(fd1,&value1,sizeof(long)) 写入每个管道,并通过 read(fd1, &value1, sizeof(long)) 读取它。 两个都用一根管子会更好,但我不知道该怎么做。
我试过了:
write(fd1,&value1,sizeof(long));
write(fd1,&value2,sizeof(long));
还有两次读取,但这似乎会导致进程阻塞并相互等待。
如果有人能给我一个提示,我会很高兴如何实现这一点。
可能的解决方案:我将所有值写入一个数组(因为我知道有多少),然后我只需要一个线/读取调用。
【问题讨论】:
-
管道可能被缓冲了你刷新它们了吗?