也就是说,B
有gets
要求输入,A
有puts
输出内容。
A
和B
都是C程序。
如何在bash中使用程序A的输出作为B的输入?
我尝试的是./A |./B
和./B |./A
,但都不起作用。
更新
A的stdout中的内容如何转到./A|./B
的B的stdin?
答案 0 :(得分:2)
这是一个让你入门的例子:
/* a.c */
#include <stdio.h>
int main() {
puts("This is a string");
return 0;
}
将其编译为“a.out”。
这是从a.out中捕获字符串的程序:
/* b.c */
#include <stdio.h>
int main() {
char line[1024];
fgets(line,1023,stdin);
printf("b.c: %s",line);
return 0;
}
将其编译为“b.out”。
现在一起运行它们:
./a.out | ./b.out
管道工作的主要原则是你写入stdout并读取stdin。如果您需要更多帮助,请告诉我。