赛迪网 > IT技术 Linux > 实用技巧
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

用Getopt在Linux下获取命令行参数的方法

发布时间:2008.01.14 09:21     来源:赛迪网    作者: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;

}

(责任编辑:云子)


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· 新手学堂:Linux系统下修改字符集的方法 (01-13) · Solaris Linux 9下Vsftpd的配置方法介绍 (01-11)
· Linux和Window系统远程桌面相互访问方法 (01-11) · 新手学堂:在Solaris下使用USB存储设备 (01-11)
· 实用技巧:为Linux系统手工添加SWAP空间 (01-11) · IBM和SUN起争议 坚持不同的“开源”观点 (01-10)
· Ubuntu下用手机连接蓝牙局域网pan/pand (01-10) · 修正Ubuntu在格式化SWAP后不能休眠的问题 (01-10)
· 新手学堂:Linux操作系统中连接库的生成 (01-10) · 用Ubuntu Linux系统架设cacti监控服务器 (01-10)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
· 移动信息化市场方兴未艾 企业呼唤标准出台
· 如何把握企业价值差异 避免CRM与SCM脱节
· 齐看四大厂商的SaaS动态 ERP案例分析
· 通方期货CRM解决方案 方正电子公文系统
  IT博客 ·曾剑秋·项立刚·Java学习·网管
  IT技术论坛 ·开发·网管·安全·数据库·系统