相关函数
表头文件
#include<unistd.h>
定义函数

int getopt(int argc,char * const argv[ ],const char * optstring);

使用方法:在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包含了所发现的无效选项字符。

函数说明
getopt()用来分析命令行参数。参数argc和argv是由main()传递的参数个数和内容。参数optstring 则代表欲处理的选项字符串。此函数会返回在argv 中下一个的选项字母,此字母会对应参数optstring 中的字母。如果选项字符串里的字母后接着冒号“:”,则表示还有相关的参数,全域变量optarg 即会指向此额外参数。如果getopt()找不到符合的参数则会印出错信息,并将全域变量optopt设为“?”字符,如果不希望getopt()印出错信息,则只要将全域变量opterr设为0即可。
返回值
如果找到符合的参数则返回此参数字母,如果参数不包含在参数optstring 的选项字母则返回“?”字符,分析结束则返回-1。
范例
#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,optind=%d\n",optarg,optind);
break;
case 'b':
printf("option b :b,optind=%d\n",optind);
break;
default:
printf("other option :%c\n",ch);
}
printf("optopt +%c\n",optopt);
return 0;
}
执行
$./aaa –b
option b:b
$./aaa –c
other option:c
$./aaa –a
other option :?
$./aaa –a12345
option a:’12345’

getopt函数应用相关推荐

  1. Linux下getopt函数的使用

    getopt为解析命令行参数函数,它是Linux C库函数.使用此函数需要包含系统头文件unistd.h. getopt函数声明如下: int getopt(int argc, char * cons ...

  2. python中getopt函数_python getopt模块详解

    getopt这个函数 就是用来抽取 sys.argv 获得的用户输入来确定执行步骤. getopt是个模块,而这个模块里面又有getopt 函数,所以getopt需要这样这样用. getopt.get ...

  3. getopt 函数2

    昨天在做code review的时候,看到函数getopt(),似乎没见过,狗狗之,大惊--发现原来自己干过N次愚蠢的事!!!         函数getopt()用来分析命令行参数(可怜的Sam啊- ...

  4. C语言-getopt函数

    #include<unistd.h> int getopt(int argc,char *const argv[],const char *optstring); extern char ...

  5. Mysql —— C语言链接mysql数据库,命令行形式(getopt()函数),用户、用户组增删改查(用户组表内有用户控制的策略字段)

    函数说明--getopt(): 函数说明 getopt()用来分析命令行参数.参数argc和argv分别代表参数个数和内容,跟main()函数的命令行参数是一样的. optstring中的指定的内容的 ...

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

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

  7. [转载]Linux下getopt()函数的简单使用

    转载源地址:https://www.cnblogs.com/qingergege/p/5914218.html 1.getopt()函数的出处就是unistd.h头文件(哈哈),写代码的时候千万不要忘 ...

  8. python中getopt函数_Python中getopt()函数的使用

    在运行程序时,可能需要根据不同的条件,输入不同的命令行选项来实现不同的功能.目前有短选项和长选项两种格式.短选项格式为"-"加上单个字母选项:长选项为"--"加 ...

  9. C/C++ getopt()函数的介绍及使用

    函数原型: int getopt(int argc,char * const argv[ ],const char * optstring); 前两个参数大家不会陌生,没错,就是老大main函数的两个 ...

最新文章

  1. Maven解决静态资源过滤问题
  2. [Head First Java] - 线程共享数据问题
  3. myeclipse试用小记----Hibernate多对一双向关联(2)
  4. 多媒体微型计算机必不可少的硬件,第1章计算机基础知识习题材料.doc
  5. GDB 调试命令讲解 2-转
  6. 深度学习笔记_基本概念_神经网络中的epoch、batch_size和iteration
  7. C++#ifndef/#define/#endif的用法
  8. 翻译: 顶级人工智能会议 CVPR NeurIPS AAAI 等
  9. 怎么用软件设计班旗_设计制作:班旗设计
  10. 七种常见的数据分析法之:对比分析法
  11. python爬虫requests设置代理ip_Python 爬虫的代理 IP 设置方法汇总
  12. dfuse 开放其 EOSIO 堆栈的源代码
  13. Linux 安装qq农场小游戏
  14. 心存希望,幸福就会靠近你;心存梦想,机遇就会笼罩你;心存坚持,快乐就会常伴你;心存善念,阳光就会照耀你;心存美丽,温暖就会围绕你;心存他人,真情就会回报你;心存感恩,贵人就会青睐你。
  15. ffmpeg命令行,单张图片,音频合成视频
  16. Servlet实例化异常以及tomcat子级启动失败的可能原因
  17. linux源码分析之cpu初始化 kernel/head.s,linux源码分析之cpu初始化
  18. 《从你的全世界路过》之稻城
  19. PC电脑装机知识分享
  20. 计算机网络——第4章网络层(下)

热门文章

  1. Oracle varchar类型数值排序问题
  2. mysql索引下推原理_MySQL:好好的索引,为什么要下推?
  3. 计算机二级c语言考试不够,2019计算机二级考试注意事项 必须要知道
  4. 为什么 jmeter 分布式测试,一定要设置 java.rmi.server.hostname
  5. Nginx下Uwsgi模块常用参数说明
  6. ntpd时钟同步服务
  7. BCNF/3NF的判断方法
  8. GoF23种设计模式之行为型模式之策略模式
  9. 城乡投票源码php_响应式投票系统(支持微信、手机) php版 v3.2
  10. python中lambda()的用法_python中lambda()的用法