C语言 使用流在 *nix 进程之间管道输入/输出



我正在用C语言开发一个相当简单的应用程序。最终目标是在 *nix 环境中将输出从一个进程管道传输到另一个进程的输入(是的,我知道 pipe() 命令和 dup/dup2,但我试图使用这些命令来寻找)。我想知道是否有任何方法可以连接流而不是使用文件描述符(系统不能保证符合 POSIX 标准)。

所以基本上我想做这样的事情(伪代码)

pid = fork()
if pid == 0 
    // assign this process's stdin to the parents stdout.
    stdin = parent.stdout;
    exec() // launch new process that receives the parents stdout as stdin
    // child stuff....
else
    // parent stuff....

我知道这可能不像上面那样做作业那么简单,但是有没有办法仅使用流来做到这一点?我试着环顾四周,但什么也找不到。

谢谢!

很抱歉,如果我在这里错过了重点,但 *nix 的整个哲学是一个程序,一个工作。如果您需要一个程序将程序的内容转储到屏幕上,那么您有 cat 命令。如果文件太大并且您需要分页符,则将 cat 的输出通过管道传输到更多命令:

Cat Myfile.txt | 更多

如果您需要在两个终端应用程序之间通过管道传输,那么您应该使用命令行来执行此操作:

myprog1 | myprog2

显然,这是哲学方法,所以如果这没有帮助,那么你能澄清你想管道什么以及你为什么要在这个过程中这样做吗?

相关内容

  • 没有找到相关文章

最新更新