1.命令行参数的作用
第一个参数是程序的名称,这个参数的作用在于如果程序采用几组不同的选项进行启动。例如unix中的列表ls,ll,和l几种不同的启动模式。当以ls启动时,就产生文件的简单列表。当它以l启动时,就产生一个多列的简单列表;如果它以名字ll启动,就产生详细列表。程序对命令行传给它的第一个参数进行检查,确定它是由哪个名字启动的,从而根据名字选择不同的操作。
问题在于命令行怎么知道ll和ls是一个程序呢?
2处理命令行参数
Prog –a –b –c name1 name2 name3
则处理该参数的方法是
Void main(int argc,char** argv)
{
While(*++argv!=NULL&&*++argv==’-’) //跳过‘-’
{
Switch(*++*argv)//跳过’-’后的项目,while括号内部跳一次,此处swtich括号内跳第二次,就把-a这两个字符跳过了。
{
Case ‘a’:
Option_a=TRUE;break;
Case ‘b’
Option_b=TRUE;break;
}
}//处理参数
If(*argv==NULL)
Process_standard_input();
Else{
Do
{
Process_file(*argv);
}while(*++argv!=NULL);
}
}