getopt的用法与optarg(转)

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

表头文件:

#include<unistd.h>

函数说明 :

getopt(int argc, char * const argv[ ], const char * optstring)用来分析命令行参数。参数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’\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’

详解C 语言中的 getopt 以及参数 optarg 名称说明optarggetopt()提供的选项参数字符串指针自动声明不需要你显式定义,由头文件声明,链接时由系统提供用法仅当选项定义中带(如"S:")时才会填充。本文介绍了getopt工具的两种主要用法:在C程序中解析命令行参数和在shell脚本中处理选项。在C语言中,通过unistd.h的getopt()函数或getopt.h的getopt_long()函数解析短/长选项;在Bash脚本中则使用GNU的getopt命令。文章提供了两种场景的代码示例,展示了如何定义和解析带参数和不带参数的选项。getopt 阅读详情

相关推荐

getopt用法

getopt被用来解析命令行选项参数。就不用自己写东东处理argv了。 #include extern char *optarg; //选项的参数指针 extern int optind; //下一次调用getopt的时,从optind存储的位置处重新开始检查选项。 extern int opterr; //当opterr=0时,getopt不向stderr输出错误信息。 e

601

linux c解析命令行选项getoptoptarg、optind、opterr、optopt

原文地址http://daileinote.com/computer/c_base/14 一个典型的 unix 命令行有着如下的形式。 command [options] arguments 选项的形式为连字符 (-) 紧跟着一个唯一的字符用来标识该选项,以及一个针对该选项的可选参数。带有一个参数的选项能够以可选的方式在参数和选项之间用空格分开。多个选项可以在一个单独的连字符后归组...

戴磊的博客 2385

linux——getopt()getopt_long()函数及optarg,optind, opterr, optopt全局变量

getopt() 函数 getopt() 头文件 #include&lt;unistd.h&gt; 定义函数 int getopt(int argc,char * const argv[ ],const char * optstring); extern char *optarg; extern int optind, opterr, optopt; getopt() 所设置的全局变量包括: o...

夜风的博客 1万+

getopt, optarg, optind, opterr, optopt

#include &lt;unistd.h&gt; int getopt(int argc, char * const argv[], const char *optstring); extern char *optarg; extern int optind, opterr, optopt; #include &lt;getopt.h&gt; int getopt_long(int ...

zxx2096的博客 1768

getopt函数讲解

一. 前言 当我们编写好一个应用程序,经常需要添加一些命令行选项以支持不同的场景。假设我们编写了一个可以以指定方式连接到其他主机端口的应用程序 connect,我们可以执行 ./connect -m tcp -s 192.168.1.105 -p 8888 表示要以 tcp 方式连接到主机名为 192.168.1.105 的 8888 端口,这样你的程序不会被写死,当你需要连接到...

椛茶的博客 1396

optarggetopt用法

optarggetopt用法 这里是我遇到的问题,不想看的,可直接跳过,去下面看解释 前言: 今天在一个项目里的iReadOptions(int argc, char **argv)函数里遇到extern char *optarg;我知道这是引用外部声明的变量,我当时就突发奇想,想看看这个外部变量是在什么地方定义的,又在外部文件中有什么作用,于是我就在那个库里挨个文件找optarg,找到最后都没有找到optarg,我就开始郁闷了,那函数iReadOptions的optarg引用的是哪里的变量?于是我就有

liu_Zzr的博客 1万+

getopt用法optarg

getopt用法optarg getopt被用来解析命令行选项参数。就不用自己写东东处理argv了。 #include        extern char *optarg;  //选项的参数指针        extern int optind,   //下一次调用getopt的时,从optind存储的位置处重新开始检查选项。         extern int opterr

rongwenbin的专栏 643

getopt()用法详解

getopt被用来解析命令行选项参数。就不用自己写东东处理argv了。 #include <unistd.h> extern char *optarg; //选项的参数指针 extern int optind, //下一次调用getopt的时,从optind存储的位置处重新开始检查选项。 extern int opterr, //当opterr=0时,getopt不向stderr输出错误信息。 extern int optop

积累点滴,保持自我 3万+

linux getopt用法,optarggetopt用法

optarggetopt用法这里是我遇到的问题,不想看的,可直接跳过,去下面看解释前言:今天在一个项目里的iReadOptions(int argc, char**argv)函数里遇到extern char*optarg;我知道这是引用外部声明的变量,我当时就突发奇想,想看看这个外部变量是在什么地方定义的,又在外部文件中有什么作用,于是我就在那个库里挨个文件找optarg,找到最后都没有找到o...

weixin_39527292的博客 299

C语言中getopt()函数的用法

1.getopt()函数 getopt函数用来解析命令行选项,声明所在头文件为: #include <unistd.h> 函数原型如下: int getopt(int argc, char * const argv[], const char *optstring); 第一个参数argc是

Mculover666的博客(嵌入式) 1万+

C语言命令行参数解析详解:getoptoptarg、optind

参数含义argc命令行参数个数argv命令行参数数组optstring有效选项定义字符串(例如"t:v:"getopt()每次调用时,会返回当前解析到的命令行选项的“字母”,例如-t就会返回't'当解析完成后,返回-1。getopt():用于解析命令行选项optarg:存放选项的参数值optind:记录下一个待解析参数的位置optopt:当前出错的选项字符。

weixin_67251822的博客 975

getopt 详解 getoptoptarg

今天又学到点儿东西,声明:这篇博文从别人那里贴过来的,感觉不错就偷过来了,嘿嘿!getopt被用来解析命令行选项参数。就不用自己写东东处理argv了。 #include        extern char *optarg;  //选项的参数指针       extern int optind,   //下一次调用getopt的时,从optind存储的位置处重新开始检查选项。        ext

BruceBaoZhiqiang的专栏 6716

Unix——optarggetopt用法

在学习webbench这个开源小项目时遇到了getopt_long()这个函数,就查到了getopt()这个函数,功能基本一致。函数参数和返回值int getopt(int argc, char * const argv[], const char *optstring); 说一下什么是选项,什么是参数。 argc和argv就不说了, 这个就是在命令行输入时的选项,通过main函数的参数传入字

Learn From The Masters 4104

linux c 命令行解析 getopt getopt_long optarg optind opterr optopt 简介

目录 getopt 函数 测试代码 getopt_long函数 代码示例 getopt 函数 头文件 #include<unistd.h> 定义函数int getopt(int argc,char * const argv[ ],const char * optstring); extern char *optarg; extern int optind, opterr, optopt; getopt() 所设置的全局变量包括: optarg——指向当前选项参数(如果有)的指针。 .

whatday的专栏 1131

【Linux】Shell命令 getopts/getopt用法详解

Shell命令行参数解析getopts/getopt用法详解 在Linux bash中,可以用以下三种方式解析命令行参数: 直接处理:使用$1,$2,$3…进行解析 getopts: 单个字符选项的情况,例如:-n 10 -f file.txt等选项 getopt:处理单个字符或长选项(long-option),例如:–prefix=/home等 经验:小型脚本可以直接处理,大多数情况使用get...

小哲的博客 3万+

getopt 详解 getoptoptarg

今天又学到点儿东西,声明:这篇博文从别人那里贴过来的,感觉不错就偷过来了,嘿嘿! getopt被用来解析命令行选项参数。就不用自己写东东处理argv了。  #include        extern char *optarg;  //选项的参数指针        extern int optind,   //下一次调用getopt的时,从optind存储的位

zuihoudebingwen的专栏 1145

getopt函数和getopt_long函数详解

getopt函数和getopt_long函数详解

qq_24330911的博客 1175

getopt getopts用法详解

getopt getopts用法详解 我们经常使用脚本 后面跟参数这种用法,这个时候使用getopt/getopts再合适不过了;下面就来详细说明 getopt (系统外部用法,后来增加的) getopts(内部,不支持长选项 只能是单个字符的短选项)的用法 先看一段代码 #!/bin/bash set -e set -o pipefail cmd=$(basename $0) defau...

zhenglin的博客 7797
下一篇: ioctl()函数的用法、例子
软体饼干
博客等级 码龄15年 3粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值