c - 如何从 C 中的标准输出读取

标签 c pipe stdout

我需要编写一个 C 程序 (myprogram) 来检查其他程序的输出。它基本上应该像这样工作:

./otherprogram | ./myprogram

但我找不到如何从 stdout(或管道)逐行读取,然后将所有这些写入 stdout

最佳答案

一个程序的stdout 成为下一个程序的stdin。只需从 stdin 读取就可以了。

当 shell 运行 myprogram 时,它会为你连接一切。

顺便说一句,这是负责的 bash 代码: http://git.savannah.gnu.org/cgit/bash.git/tree/execute_cmd.c

寻找 execute_pipeline。不,代码并不容易理解,但它充分解释了它。

关于c - 如何从 C 中的标准输出读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24214038/

相关文章:

python:将标准输出选择性重定向到文件

c - C 代码的核心转储是什么意思?

c - 将结构传递给接受 void * 参数的函数的问题

检查与服务器的连接

c - 是否可以连接两个管道/ socket ?

bash - 在循环中打印 sql 查询的单个数据到 stroud

c - 32 位和 64 位之间的行为差​​异

angular - 在 angular2 的自定义管道上扩展管道,如货币或数字

c - sh : gnuplot: command not found in Xcode

python - 在 Python 中通过 sys.stdout 编写 unicode 字符串