有关系统调用getopt:
声明:
         #include <unistd.h>
         int getopt(int argc, char *const argv[], const char *optstring);

extern char *optarg;
         extern int optind, opterr, optopt;

使用方法:在while循环中反复调用,直到它返回-1。每当找到一个有效的选项字母,它就返回这个字母。如果选项有参数,就设置optarg指向这个参数。
当程序运行时,getopt()函数会设置控制错误处理的几个变量:
char *optarg ──如果选项接受参数的话,那么optarg就是选项参数。
int optind──argv的当前索引,当while循环结束的时候,剩下的操作数在argv[optind]到argv[argc-1]中能找到。
int opterr──当这个变量非零(默认非零)的时候,getopt()函数为"无效选项”和“缺少选项参数”这两种错误情况输出它自己的错误消息。可以在调用getopt()之前设置opterr为0,强制getopt()在发现错误时不输出任何消息。

int optopt──当发现无效选项的进修,getopt()函数或者返回'?'字符,或者返回字符':'字符,并且optopt包含了所发现的无效选项字符。

范例 #include<stdio.h>

#include<unistd.h>
int main(int argc,char **argv)
{
int ch;
opterr = 0;
while((ch = getopt(argc,argv,”a:bcde”))!= -1)
switch(ch)
{
case ‘a’: printf(“option a:’%s’\n”,optarg); break;
case ‘b’: printf(“option b :b\n”); break;
default: printf(“other option :%c\n”,ch);
}
printf(“optopt +%c\n”,optopt);
}
执行 $./getopt –b
option b:b
执行 $./getopt –c
other option:c
执行 $./getopt –a
other option :?
执行 $./getopt –a12345
option a:’12345’

转载于:https://www.cnblogs.com/ancient/p/3202157.html

getopt( )和 getopt_long( )相关推荐

  1. linux c 命令行参数处理函数 getopt()和getopt_long()

    在实际编程当中,自己编写代码处理命令行参数是比较麻烦且易出错的.一般我们会直接使用getopt()和getopt_long()函数,下文将介绍具体的使用方法. getopt() getopt()用于处 ...

  2. c语言命令行选项处理函数getopt和getopt_long() 函数使用

    经常接触Linux的同学应该有这样的体验,当遇到一个不会使用的命令时通常敲一下xCmd -h或者xCmd --help来获取命令提示,例如tcpdump命令或者iptables命令,像这样的选项仅仅是 ...

  3. Linux getopt()函数 getopt_long()函数---转

    http://hi.baidu.com/scoundrelgg/item/d4083f8412eea05d26ebd97f Linux getopt()函数 getopt_long()函数 get_o ...

  4. getopt和getopt_long函数

    平时在写程序时常常需要对命令行参数进行处理,当命令行参数个数较多时,如果按照顺序一个一个定义参数含义很容易造成混乱,而且如果程序只按顺序处理参数的话,一些"可选参数"的功能将很难实 ...

  5. getopt与getopt_long

    很多命令行程序中都有这两个文件:getopt.c与getopt_long.c.它们的作用是可以方便的获取命令行的参数.在此转一篇文章,讲述它们的作用. 一.getopt getopt被用来解析命令行选 ...

  6. webbench源码学习--命令行选项解析函数getopt和getopt_long函数

    对于webbench这个网站压力测试工具网上介绍的很多,有深度详解剖析的,对于背景就不在提了, 听说最多可以模拟3万个并发连接去测试网站的负载能力,这里主要是学习了一下它的源码,做点 笔记. 官方介绍 ...

  7. getopt和getopt_long的使用

    getopt的函数使用 1.需要头文件#include <unistd.h>,其函数原型为int getopt(int argc, char *const argv[], const ch ...

  8. 命令行选项解析函数(C语言):getopt()和getopt_long()

    上午在看源码项目 webbench 时,刚开始就被一个似乎挺陌生函数 getopt_long() 给卡住了,说实话这函数没怎么见过,自然不知道这哥们是干什么的.于是乎百度了一番,原来是处理命令行选项参 ...

  9. [转载][总结]函数getopt(),getopt_long及其参数optind

    看webbench源码的时候碰到命令行解析工具getopt的使用,虽然之前也看过一点,但都不是很全面,只是了解个大概,下面稍微总结一下: getopt和optind: getopt被用来解析命令行选项 ...

  10. GNU C getopt()、getopt_long() 与 getopt_long_only() 获取命令行参数

    1.背景 众所周知,C/C++ 程序的主函数有两个参数.第一个参数是整型,可以获得包括程序名字的参数个数,第二个参数是字符数组指针或字符指针的指针,可以按顺序获得命令行上各个字符串参数.其原型是: i ...

最新文章

  1. Hibernate QBC 分页
  2. Linux安装Apache报错:Cannot find a valid baseurl for repo: base/7/x86_64解决方案
  3. apollo 配置中心_Apollo配置中心搭建笔记
  4. python当中的生成器
  5. Mybatis助手之Mybatis-Plus——开始使用
  6. c++矩阵转置_lt;读书笔记4gt; 稀疏矩阵基础算法
  7. java8使用stream操作集合类,如何使用bigDicemal计算工资?
  8. ROS笔记(7) 话题通信
  9. 响应式Web设计的9项基本原则
  10. java个人中心修改界面怎么整_怎么对个人中心页面访问进行控制
  11. Maven学习总结(26)——maven update时,报:Preference node org.eclipse.wst.validation...
  12. 信用评分卡 (part 1 of 7)
  13. oracle不同值,Oracle一张表中实现对一个字段不同值和总值的统计(多个count)
  14. python刷新网页_python调用浏览器刷新网页的简单示例
  15. HITB CTF 2018 gundam 做题笔记
  16. Linux: 查看网络流量
  17. 幼麟棋牌创建房间逻辑分析
  18. 月薪过万的运维工程师都要会干什么
  19. JQuery弹幕发送
  20. 各国家 MCC 和 MNC 列表3

热门文章

  1. iOS----------苹果警告
  2. 黑盒测试实践(小组作业)每日例会记录——11.27
  3. error: Your local changes to the following files would be overwritten by merge
  4. 谈javascript变量声明
  5. 为什么static成员的类型可以是类本身?又为什么非static成员被限定声明为其自身类对象的指针或引用?...
  6. 第一章 打开MVC4的大门:(一)了解MVC
  7. 8086汇编学习小记-王爽汇编语言实验12
  8. CDOJ1633 Video Game Combos [AC自动机+dp]
  9. Lightingcolorfilter 滤镜
  10. AGC005D ~K Perm Counting