红联Linux门户
Linux帮助

浅析命令行参数

发布时间:2015-09-13 10:02:14来源:linux网站作者:zmrlinux

在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;
}


Linux终端命令行提示符的艺术--PS1进阶:http://www.linuxdiyf.com/linux/13596.html

Linux命令行艺术:http://www.linuxdiyf.com/linux/12734.html

Linux命令行中的幽默:http://www.linuxdiyf.com/linux/12826.html

5个有趣的Linux命令行技巧:http://www.linuxdiyf.com/linux/12286.html

Linux命令行下”!”的十个神奇用法:http://www.linuxdiyf.com/linux/12265.html