在Linux中使用pipe道的进程间通信

我已经写了我的代码编写一个数字在Linuxpipe道。 它是一样的,但它是显示错误,任何人都可以帮助我。

基本上这个程序的问题陈述如下: – 一个程序将打开一个pipe道,向pipe道写一个数字。 – 其他程序将打开相同的pipe道,将读取数字并打印它们。 – closures两个pipe道

int main() { int number; FILE *fout; fout = popen(" ","w"); pclose(fout); return 0; } 

现在我的问题是我应该给popen命令选项(如上面显示的空白)什么命令,以便我可以进一步进行并编写一个数字pipe道。

Solutions Collecting From Web of "在Linux中使用pipe道的进程间通信"

首先,使用mknod命令创建一个命名管道。 mknod pipe p 。 然后使用函数读写,就好像它们是文件一样。 节点也可以使用代码创建,使用mknod函数。 寻找错误代码EEXIST 。 更多信息在这里。 http://linux.die.net/man/2/mknod

你不太清楚IPC和管道是如何工作的; 请阅读一本好书: 高级Linux编程有几个关于这些问题的章节。

我们没有几个小时来解释这些好书所涵盖的困难概念。 花几个小时阅读!

库函数popen(3)运行一个命令。 很可能,您的系统上没有p命令。 我猜fp是NULL,并errno

popen正在使用pipe(2) , fork(2) , dup2(2) , execve(2)和/bin/sh -c