获取命令行参数(java是gnu.getopt.Getopt)

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、例子程序

下面是一个使用getopt函数读取参数的例子程序,该程序支持 –p –s –b –c的参数,并将这些参数值读取后进行打印。你可以根据需要将这些代码稍作修改用于自己的程序中。

/*

* getopt.c

* Author: Coonxu

* email: coonxu@126.com

* 这是一个使用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;

}

转载于:https://www.cnblogs.com/frankliiu-java/archive/2010/05/20/1740060.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值