免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 629 | 回复: 0
打印 上一主题 下一主题

用Getopt在Linux下获取命令行参数的方法 [复制链接]

论坛徽章:
1
15-16赛季CBA联赛之北控
日期:2022-03-04 22:35:50
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-03-21 21:48 |只看该作者 |倒序浏览

来源:赛迪网    作者:skid

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

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/31/showart_502994.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP