我们假设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;
}