获得程序参数

Posted suwen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获得程序参数相关的知识,希望对你有一定的参考价值。

   当一个用C语言编写的Linux程序运行时,它是从main函数开始的。main程序的声明可以如下:

int main(int argc, char *argv[])

  其中argc是程序参数的个数,argv是一个代表参数自身的字符串数组。

  在Linux中,我们一般使用shell命令运行一个可执行文件,例如:

$myprog left right and center

  程序myprog将从main函数开始,main带的参数是:

argc:4
argv:{"myprog", "left", "right", "and center" }

  注意,参数的个数包含程序名自身。

 

  在linux中,我们建议在应用程序中,所有的命令行开头都应以一个短横线开头,气候包含单个字母或数字。如果需要,不带后续参数的选项可以在一个短横线后归并到一起,例如“$ls -lstr”,如果该选项需要参数值,则该选项应独立使用,参数紧跟在该选项后。例如“gcc -o file file.c”

  下面这个程序argc.c对其参数进行检查:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]) {
        int arg;

        for(arg = 0; arg < argc; arg++) {
                if(argv[arg][0] == -)
                        printf("option: %s\n", argv[arg]+1);
                else
                        printf("argument %d: %s\n", arg, argv[arg]);
        }

        exit(0);
}

  测试如下:

[email protected]:/home/anthony# ./args -i -lr hi there -f fred.c
argument 0: ./args
option: i
option: lr
argument 3: hi there
option: f
argument 5: fred.c

  本例中,我们忽略了一种事实,就是-lr选项应该和-l -r一样处理。

 

以上是关于获得程序参数的主要内容,如果未能解决你的问题,请参考以下文章

Asynctask结果显示重新创建片段后

提效小技巧——记录那些不常用的代码片段

片段(Java) | 机试题+算法思路+考点+代码解析 2023

xml Eclipse模板(代码片段)检查参数并最终抛出IllegalArgumentException

Visual Studio 自定义代码片段在方法定义的参数列表中不起作用

为什么我不能在此片段中生成唯一对象数组?