java读取命令⾏参数_获取命令⾏参数(java是
1、函数说明
表头⽂件:#include
函数声明:int getopt(int argc, char * const argv[], const char *optstring);
函数说明:getopt()⽤来分析命令⾏参数。参数argc和argv是由 main()传递的参数个数和内容。参数optstring 则代表欲处理的选项字符串。此函数会返回在argv 中下⼀个的选项字母,此字母会对应参数optstring 中的字母。如果选项字符串⾥的字母后接着冒号“:”,则表⽰还有相关的参数,全域变量optarg 即会指向此额外参数。如果getopt()不到符合的参数则会印出错信息,并将全域变量optopt设
为“?”字符,如果不希望getopt()印出错 信息,则只要将全域变opterr设为0即可。
选项的使⽤定义规则类似:
ab:c::
意思是:
a 后没有冒号,表⽰没有可以参数
b 后跟⼀个冒号,表⽰有⼀个必要的参数
c 后跟两个冒号,表⽰有⼀个可选的参数
长选项的定义相同,但⽤逗号分割。
返回值:如果到符合的参数则返回此参数字母,如果参数不包含在参数optstring 的选项字母则返回“?”字符,分析结束则返回-1。
2、例⼦程序
switch函数用法举例
下⾯是⼀个使⽤getopt函数读取参数的例⼦程序,该程序⽀持 –p –s –b –c的参数,并将这些参数值读取后进⾏打印。你可以根据需要将这些代码稍作修改⽤于⾃⼰的程序中。
/*
* getopt.c
* Author: Coonxu
* email: coonxu@126
* 这是⼀个使⽤getopt函数读取参数的例⼦程序,该程序⽀持 -p -s -b -c的参数,
* 并将这些参数值读取后进⾏打印。你可以根据需要将这些代码稍作修改⽤于⾃⼰的程序中。
*/
#include
#include
int main(int argc, char **argv)
{
int ch;
opterr = 0;
while( ( ch = getopt( argc, argv, "s:b:c:p:" ) ) != EOF )
{
switch(ch)
{
case 's':
printf("s opt: %s\n", optarg); break;
case 'b':
printf("b opt: %s\n", optarg); break;
case 'c':
printf("c opt: %s\n", optarg); break;
case 'p':
printf("p opt: %s\n", optarg); break;
case '?':
printf( "illegal option: %c\n", ch ); break;
}
}
return 0;
}
(

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。