这样一段非常简单的C ++代码:
int main(int argc, char **argv){
std::cout << "argc: " << argc << std::endl;
}
使用g++ -o hello hello.cpp
./hello u
一起投放时,输出为argc: 2
; ./hello u +
一起投放时,输出为argc: 3
; ./hello u *
合作时,输出为argc: 26
,为什么26
?答案 0 :(得分:10)
壳牌扩张。 *
由shell扩展为当前目录中的所有文件,其中似乎有24个,并将它们作为单独的参数传递给您的程序。
由于这看起来像来自UNIX shell的调用,请使用
./hello u \*
或
./hello u '*'
答案 1 :(得分:0)
您需要传递shell在' '
中解释为特殊字符的内容。
所以正确的命令行调用应该是./hello u '*'