<分区>
我有这个非常简单的 C 程序:
#include <stdio.h>
int main (int argc, char ** argv){
printf ("%s\n",argv[1]);
}
像这样在 Linux/bash 上运行时:
./a.out *
我得到以下输出:
a.c
为什么?
<分区>
我有这个非常简单的 C 程序:
#include <stdio.h>
int main (int argc, char ** argv){
printf ("%s\n",argv[1]);
}
像这样在 Linux/bash 上运行时:
./a.out *
我得到以下输出:
a.c
为什么?
最佳答案
因为 *
是一个 glob 字符,它扩展到当前目录中的文件列表。
如果你想传递文字 *
你需要引用或转义它:
./a.out '*'
关于c - 在 Linux 上将 * 作为命令行参数传递时的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21613415/