|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
无论谁倒了对双方阵营的粉丝们也是有害无益。getopt()对命令行参数举行剖析
intgetopt(intargc,char*constargv[],constchar*optstring);
给定了命令参数的数目(argc)、指向这些参数的数组(argv)和选项字符串(optstring)后,getopt()将前往第一个选项,并设置一些全局变量。利用不异的参数再次挪用该函数时,它将前往下一个选项,并设置响应的全局变量。假如不再有辨认到的选项,将前往-1,此义务就完成了。能够反复挪用getopt(),直到其前往-1为止.
getopt()所设置的全局变量包含:
optarg——指向以后选项参数(假如有)的指针。
optind——再次挪用getopt()时的下一个argv指针的索引。
optopt——最初一个已知选项。
个中optstring誊写格局以下:"f:e:ac",个中:暗示前一个字符是带参数的
例子:
#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
intmain(intargc,char*argv[]){
into;
externintoptind,optopt,opterr;
externchar*optarg;
opterr=0;
while((o=getopt(argc,argv,"f:e:a"))!=-1){
switch(o){
casef:
fprintf(stderr,"f%s
",optarg);
break;
casee:
fprintf(stderr,"e%s
",optarg);
break;
casea:
fprintf(stderr,"a%s
",optarg);
break;
case?:
if(optopt==foptopt==e)
fprintf(stderr,"Option-%crequiresanargument.
",optopt);
elseif(isprint(optopt))
fprintf(stderr,"Unknownoption`-%c.
",optopt);
else
fprintf(stderr,"Unknownoptioncharacter`x%x.
",optopt);
return1;
default:
printf("Unknownoptioncharacte");
abort();
}
}
}
必要注重的是:
变量optind,optopt,opterr,optarg都是全局变量,内部援用,界说时都必要加"extern"
"f:e:a"暗示-f和-e有参数,-a没有参数,编译为test,并测试
#./test-aabc-f"abc"-eabc
a(null)
fabc
eabc
#./test-aabc-f"abc"-e
a(null)
fabc
Option-erequiresanargument.
不外,如许的代码还在存在成绩,假设"-f"前面短少参数,它会误把"-e"看成"-f"的参数
#./test-aabc-f-e"abc"
a(null)
f-e
本文链接http://www.cxybl.com/html/net/winform/20120610/29307.html学习asp.net两个月有余了,除了对html、web控件比较熟悉(应该是说都能理解和接受)之外,竟不知道自己还会什么。看了两本书:《精通asp.net网络编程》(人民邮电出版社)、《asp.net实用案例教程》(清华大学出版社)。 |
|