首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >linux环境命令行参数

linux环境命令行参数
EN

Stack Overflow用户
提问于 2014-03-30 01:38:18
回答 1查看 79关注 0票数 0

我是一名Windows程序员,现在我正在学习如何在Linux环境下编程,我使用LinuxMint15。

我遇到了一个“奇怪”的问题,命令行参数不是我输入的。这个程序非常简单:

代码语言:javascript
运行
复制
#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;
}

然后编译并运行它,它可以按我的要求工作:

代码语言:javascript
运行
复制
roy@xx ~ $ gcc -o cl test_cl.cpp
roy@xx ~ $ ./cl 1 2
cmd line=./cl 1 2 

但是,当我在末尾输入一个*时,它列出了文件夹中的所有文件名……:

代码语言:javascript
运行
复制
roy@xx ~ $ ./cl 1 2 *
cmd line=./cl 1 2 Public Template Video Picture Docs Desktop cl test_cl.cpp test.txt untitled

发生了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-30 01:41:42

大多数Linux都专门处理字符?*。特别是,它们用于使模式与文件名匹配。在这种情况下,外壳将*扩展到当前目录中的所有文件,然后将该列表作为命令行参数发送到程序。如果您想要一个文字*,您需要用\*转义它,或者用'*'引用它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22739267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档