为什么我不能打印传递给我程序的第一个参数?

时间:2014-02-04 15:28:59

标签: c bash arguments

我在c:

中制作了一个简单的代码
#include <stdio.h>
int main( int argc, char* argv[] ) {
    printf( "Hello, just wanted to say: %s.\n", argv[1] );
    return 0;
}

并从中制作了两个程序 - app1app2

现在,我正在试验管道:

./app1 Bye | ./app2

,输入%s的输出为(null),而不是预期的“Hello”。为什么呢?

1 个答案:

答案 0 :(得分:10)

你似乎误解了管道是如何工作的。当您像使用管道一样使用管道时,app1的输出将用作stdin的{​​{1}},而不是app2的命令行参数。

就是这样:

app2