获得程序参数

   当一个用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);
}

  测试如下:

root@ubuntu:/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一样处理。

  

  关于Linux的shell命令的源代码,可以从GNU网站中下载:

  http://alpha.gnu.org/gnu/coreutils/

  

posted on 2016-03-15 11:34  suwen  阅读(191)  评论(0编辑  收藏  举报

导航