我在c:
中制作了一个简单的代码#include <stdio.h>
int main( int argc, char* argv[] ) {
printf( "Hello, just wanted to say: %s.\n", argv[1] );
return 0;
}
并从中制作了两个程序 - app1
和app2
。
现在,我正在试验管道:
./app1 Bye | ./app2
,输入%s
的输出为(null)
,而不是预期的“Hello”。为什么呢?
答案 0 :(得分:10)
你似乎误解了管道是如何工作的。当您像使用管道一样使用管道时,app1
的输出将用作stdin
的{{1}},而不是app2
的命令行参数。
就是这样:
app2