我已经写了我的代码编写一个数字在Linuxpipe道。 它是一样的,但它是显示错误,任何人都可以帮助我。
基本上这个程序的问题陈述如下: – 一个程序将打开一个pipe道,向pipe道写一个数字。 – 其他程序将打开相同的pipe道,将读取数字并打印它们。 – closures两个pipe道
int main() { int number; FILE *fout; fout = popen(" ","w"); pclose(fout); return 0; }
现在我的问题是我应该给popen命令选项(如上面显示的空白)什么命令,以便我可以进一步进行并编写一个数字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
等