频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

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

来源: 作者:佚名 出处:巧巧读书 2008-01-15 进入讨论组
 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;

}
通告:http://www.qqread.com/linux/2008/01/d393011.html 更多文章 更多内容请看Linux集群技术体验Linux的音影世界Linux驱动大全专题,或进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章