使用"*"执行时argc值不正确

Ang*_*gus 0 c

#include<stdio.h>
int main(int argc,char* argv[]){
        printf("\n argc : %d \n",argc);
        return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:

[root@aman]# ./a.out *

argc : 8
Run Code Online (Sandbox Code Playgroud)

我已经传递了两个参数,因此argc值必须为2,但它显示为8.我想将*存储在一个数组中并比较输入的'*'字符串.

我正在编写一个工具来删除列表中的所有条目.因此我需要从"./a.out*"验证*是否输入.如果输入我需要做与之对应的动作.有没有办法用作./a.out*并取用户输入的*.

oxy*_*ene 6

您的shell正在扩展*到当前文件夹中的文件列表.尝试*用双引号或单引号括起来.

您可以通过迭代argv并打印所有参数来发现自己.