我们假设cmd1在标准输出上打印了一些内容。如何使用C中的cmd1捕获它,以便cmd1 | cmd2工作。

cmd1{
    fprintf(stdout, "Hello");
    }

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

最佳答案

若要启用管道操作,应从stdin读取cmd2。
例如,由于fgets()stdin读取,您可以执行以下操作:

#include <stdio.h>

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

10-08 20:02