浅析命令行参数

                                                             浅析命令行参数

        在LInux或UNIX系统下我们经常使用各种的命令例如ls ,cd,cat,cp,mv,rm等等命令尤其会在后面跟一些参数与选项来辅助我们实现各种功能,但是这些命令是如何接受这些参数的,其实这正是使用了命令行参数这个语法。

平常我们写程序通常是这样:

int main()

但其实完整的main是这样的int main(int * argc,char ** argv);

argc负责记录运行程序后跟的参数个数(包括运行程序的命令(./程序)),argv是一个指向char型的指针的指针,指向这组参数值的第一个元素。这些元素的每个都是指向一个参数文本的指针。如果程序需要访问命令行的参数,那么在声明是就要加上这些参数:

int main(int * argc,char ** argv);

注意argv也是一个指针数组:这个数组的每一个元素都是一个指针,数组的末尾是一个NULL指针。argc的值和这个NULL值都用于确定实际传递了多少个参数。argv指向数组的第一个元素,这就是它为什么被声明为一个指向字符的指针的指针的原因。第一个参数就是程序的名称。

例如一个打印其命令行参数的程序

#include<stdio.h>

#include<stdlib.h>

int main(int argc,char **argv)

{

while(*++argv!=NULL)

{

printf("%s\n",*argv);

}

return 0;

}


版权声明:本文为博主原创文章,未经博主允许不得转载。

posted on 2015-03-29 16:53  zmrlinux  阅读(116)  评论(0编辑  收藏  举报

导航