从C中的函数捕获结果(cmd1 | cmd2)
让我们假设cmd1在标准输出上打印某些内容。如何使用C中的cmd1捕获它,以使cmd1 | cmd2工作 i、 e从C中的函数捕获结果(cmd1 | cmd2),c,C,让我们假设cmd1在标准输出上打印某些内容。如何使用C中的cmd1捕获它,以使cmd1 | cmd2工作 i、 e 要启用管道操作,cmd2应读取stdin 例如,由于fgets()读取stdin,因此可以执行以下操作: #include <stdio.h> int main() { char buf[1024]; while (fgets(buf, sizeof(buf), stdin)) { printf("%.*s\n", 3, buf);
要启用管道操作,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;
}
#包括
int main(){
char-buf[1024];
while(fgets(buf、sizeof(buf)、stdin)){
printf(“%s\n”,3,buf);
}
返回0;
}
标准输出如何与另一个程序交互与C无关——这是操作系统。然而,在我使用过的每一个操作系统上,输入
cmd1 | cmd2
将cmd1的stdout发送到cmd2的stdin
如果这不起作用,则可能必须刷新cmd1程序中的缓冲区。(这取决于很多事情……但请尝试一下。)cmd1和cmd2函数是在同一个程序中,还是在命令行程序中?如果输出在多行上,那么:line1:hello,line2:hello,line3:hello。我只想打印前两行,但都是“hel”,这听起来像是一个不同的问题。我的回答满足这个问题吗?
cmd1 | cmd2