在Linux中使用管道进行进程间通信

时间:2013-08-10 05:48:09

标签: linux ubuntu ipc pipe

我已经编写了我的代码,用于在linux中编写一个数字来管道。它是如此,但它显示错误,任何人都可以帮助我。

基本上该计划的问题陈述如下: - 一个程序将打开一个管道,写一个数字到管道。     - 其他程序将打开相同的管道,将读取数字并打印它们。     - 关闭两个管道

int main()
{

int number;




FILE *fout;

fout = popen("  ","w");



pclose(fout);

return 0;

}

现在我的问题是我应该在popen命令选项中给出什么命令(如上面的空白所示),以便我可以继续进行并将数字写入管道。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

你不清楚IPC和管道是如何工作的;请阅读一本好书:Advanced Linux Programming有几章关于这些问题。

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

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

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