假设cmd1在标准输出上打印一些内容。我如何在C中用cmd1捕获它,这样cmd1 | cmd2才能工作。
i.e
cmd1{
fprintf(stdout, "Hello");
}
cmd2 : should take "hello" and only print "hel".发布于 2011-03-03 11:44:14
要启用管道操作,cmd2应从stdin读取。
例如,由于fgets()从stdin读取数据,因此您可以执行以下操作:
#include <stdio.h>
int main() {
char buf[1024];
while (fgets(buf, sizeof(buf), stdin)) {
printf("%.*s\n", 3, buf);
}
return 0;
}发布于 2011-03-03 11:45:07
stdout如何与另一个程序交互与C无关--这是操作系统。然而,在我使用过的每个操作系统上,输入
cmd1 | cmd2将把cmd1的标准输出发送到cmd2的标准输入。
如果这不起作用,那么您可能必须刷新cmd1程序中的缓冲区。(这取决于很多事情...但请尝试一下。)
https://stackoverflow.com/questions/5176407
复制相似问题