-1

我已经编写了用于在 linux 中写入数字以进行管道传输的代码。它如下,但它显示错误,任何人都可以帮助我解决这个问题。

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

int main()
{

int number;




FILE *fout;

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



pclose(fout);

return 0;

}

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

4

2 回答 2

1

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

于 2013-08-10T06:10:07.503 回答
1

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

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

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

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

于 2013-08-10T06:10:27.387 回答