首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从C中的函数捕获结果(cmd1 | cmd2)

从C中的函数捕获结果(cmd1 | cmd2)
EN

Stack Overflow用户
提问于 2011-03-03 11:42:08
回答 2查看 104关注 0票数 1

假设cmd1在标准输出上打印一些内容。我如何在C中用cmd1捕获它,这样cmd1 | cmd2才能工作。

i.e

代码语言:javascript
复制
cmd1{
    fprintf(stdout, "Hello");
    }

cmd2 : should take "hello" and only print "hel".
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-03 11:44:14

要启用管道操作,cmd2应从stdin读取。

例如,由于fgets()stdin读取数据,因此您可以执行以下操作:

代码语言:javascript
复制
#include <stdio.h>

int main() {
    char buf[1024];
    while (fgets(buf, sizeof(buf), stdin)) {
        printf("%.*s\n", 3, buf);
    }
    return 0;
}
票数 2
EN

Stack Overflow用户

发布于 2011-03-03 11:45:07

stdout如何与另一个程序交互与C无关--这是操作系统。然而,在我使用过的每个操作系统上,输入

代码语言:javascript
复制
 cmd1 | cmd2

将把cmd1的标准输出发送到cmd2的标准输入。

如果这不起作用,那么您可能必须刷新cmd1程序中的缓冲区。(这取决于很多事情...但请尝试一下。)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5176407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档