函数介绍

  • getopt()是一个C语言的函数,它用于解析命令行选项参数。
  • 它的函数原型是:
int getopt (int argc, char * const argv [ ], const char * optstring);
  • 其中,argc和argv通常直接从main()的参数传递而来,表示参数的个数和字符串数组。optstring是一个包含正确的选项字符串,用于指定哪些选项需要参数,哪些不需要。
  • 一个例子:
    假设我们有一个程序,它接受以下命令行选项:
-a:不带参数的选项 -b:带参数的选项 -c:可选参数的选项 -d:不带参数的选项

我们可以用getopt()函数来解析这些选项,如下:

#include <stdio.h> #include <unistd.h>int main(int argc, char *argv[])
{ int opt; while ((opt = getopt(argc, argv, “ab:c::d”)) != -1) { switch (opt) {case ‘a’: printf(“option a\n”); break; case ‘b’: printf(“option b with argument %s\n”, optarg); break; case ‘c’: printf(“option c with optional argument %s\n”, optarg); break; case ‘d’: printf(“option d\n”); break; default: printf(“unknown option\n”); }} return 0;
}

其中optstring的规则如下:

如果一个选项后面没有冒号,表示这个选项不带参数,例如-a和-d。如果一个选项后面有一个冒号,表示这个选项必须带一个参数,例如-b。如果一个选项后面有两个冒号,表示这个选项可以带也可以不带参数,例如-c。

optarg变量

optarg是一个全局变量,它指向当前选项的参数。一般在getopt()下的switch-case代码中,如果匹配到了带参数的选项,此时optarg会指向当前选项所带的参数。
如果该选项不带参数或者是可带参数但是没带参数,optarg为NULL.

返回值

getopt()函数的返回值有以下几种情况:

  • 如果成功匹配到一个选项,返回该选项的字母。
  • 如果遇到一个不在optstring里面的选项,或者一个必须带参数的选项没有给出参数,返回’?'。
  • 如果optstring以’:‘开头,那么缺少参数的情况下会返回’:‘,而不是’?'。
  • 如果没有更多的选项,返回-1。

C语言getopt()函数相关推荐

  1. c语言 getopt函数,C - getopt函数

    c语言-getopt函数 作用:获取解析程序运行时用户输入的外部传参(例如:输入ls时的-a.-l的短参,还有--help.-help长参.) 函数原型 #include int getopt(int ...

  2. getopt函数的使用c语言,C语言getopt函数

    一直都在用这个函数,今天再详细的复习一下 0x01 C语言getopt函数介绍 getopt函数主要用于命令行的参数解析,如果我们想对一个程序输入多个数据,就需要配置参数,而传递的参数那么多,就需要程 ...

  3. C语言-getopt函数

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

  4. C语言——getopt函数

    getopt()函数声明: int getopt(int argc, char * const argv[],const char *optstring); 使用getopt()函数要引用头文件uni ...

  5. c语言中getenv的作用,C语言putenv()函数和getenv()函数的使用详解

    C语言putenv()函数和getenv()函数的使用详解 C语言putenv()函数:改变或增加环境变量头文件: #include4 定义函数: int putenv(const char * st ...

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

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

  7. C语言之getopt函数

    作用 getopt()用来分析命令行参数.参数argc和argv分别代表参数个数和内容,跟main()函数的命令行参数是一样的. //头文件 #include <unistd.h> //函 ...

  8. c语言flag go to,C 语言getopt与go语言flag获取命令参数

    C语言中的getopt()函数为命令参数的获取提供了很大便利,与golang中的flag功能类似. C语言getopt 下面以ssh中获取主机名/ip和用户名为例来示例如何使用getopt(). in ...

  9. Linux下getopt函数的使用

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

最新文章

  1. DllMain中不当操作导致死锁问题的分析——DllMain中要谨慎写代码(完结篇)
  2. java随机生成6位随机数 5位随机数 4位随机数
  3. oracle12c em 空白,Oracle12C 开启关闭em
  4. @ConfigurationProperties与@Value注解
  5. 手把手教你Tomcat配置环境变量以及验证方法
  6. boost::errinfo_errno的用法测试程序
  7. leetcode-15-三数之和
  8. 头条鼓励内容营销吗?创作商品营销内容会不会限制推荐?
  9. java mongodb 时间查询_Spring-Data-MongoDB快速入门
  10. [机器学习] 机器学习中所说的“线性模型”是个什么东西?
  11. 各个历史版本 cuda toolkit 下载链接
  12. Java7 和 C# 2.0
  13. 木兰宽松许可证(MulanPSL v2)解析
  14. web应用的跨域访问解决方案
  15. 我的web前端工作日记2------web前端工作的一天
  16. 个人笔记:kali firefox安装hackbar插件
  17. 景区电商平台网站建设方案
  18. 神奇宝贝五分类:网络自定义
  19. 惊!一文看懂Java NIO读写文件
  20. 【UNIX环境高级编程】

热门文章

  1. 【学习总结】数学-欧几里德定理
  2. android硬解码x265,Android 设置硬解码 h265 失败
  3. 如何限流,具体实现有哪些?
  4. iOS 监听耳机状态
  5. js添加和删除元素节点
  6. 浏览器主页被2345劫持捆绑解决方案---极其简单!
  7. 2345浏览器卸载之后如何找回收藏夹中的内容?
  8. Ae动态模糊插件ReelSmart Motion Blur
  9. matlab模糊工具箱使用,MATLAB中模糊神经网络工具箱的使用 - 全文
  10. 在M文件中使用模糊工具箱fis文件