0
我是一名Windows程序员,现在我正在学习在Linux环境下编程,我使用LinuxMint15。linux环境命令行参数
我遇到了一个“奇怪”的问题,命令行参数不是我输入的。 程序是超级简单:
#include <stdio.h>
int main(int argc, char* argv[])
{
printf("cmd line=");
for(int i=0;i<argc;i++){
printf("%s ", argv[i]);
}
printf("\n");
return 0;
}
然后编译并运行它,它的作品,因为我想:
[email protected] ~ $ gcc -o cl test_cl.cpp
[email protected] ~ $ ./cl 1 2
cmd line=./cl 1 2
但是,当我在最后输入一个*,它的文件夹中列出的所有文件名.....:
[email protected] ~ $ ./cl 1 2 *
cmd line=./cl 1 2 Public Template Video Picture Docs Desktop cl test_cl.cpp test.txt untitled
发生了什么事?
感谢您的及时答复,是的,我注意到\\ *的作品,但我不知道是否有某个地方可以改变shell的默认行为? – roy
不,你不想改变shell的默认行为。你需要你的shell像其他人(和POSIX标准)一样行事! –