当前位置:首页 > 日记 > 正文

Linux解析命令行选项getopt_long用法解释

Linux解析命令行选项getopt_long用法解释
点评:Linux解析命令行选项getopt_long用法

Linux的命令行选项getopt_long用法解析
在程序中,使用命令行选项是不可避免的,你可以自己选择命令行选项,但是有现成的,为什么要重建轮子。
以下是使用getopt_long解析命令行选项介绍。
程序的主要用途:
短选项长度选项是否需要参数注释
-版本无查询版本号
N - name(用户名)指定用户
调试是否已调试
1。函数的来源

复制代码代码如下所示:
{ CPP }
#包括 / / getopt_long()的头文件的位置
国际getopt_long ___argc(int,char * const * ___argv,
const char * __shortopts,
const int * * __longopts结构的选择,__longind);
国际getopt_long_only ___argc(int,char * const * ___argv,
const char * __shortopts,
const int * * __longopts结构的选择,__longind);

2。介绍参数
argc argv:直接从主函数传递
shortopts:短选项字符串。例如,,N:V,我们需要指出的是,短选项字符串不需要' ';-;当选择需要传递的参数,它补充说:对,短的选项。
的longopts:struct选项数组用于存储长选项参数。
Longind:它是用来返回在调试longopts结构阵列长选项的索引值通常设置为null。
下面是结构选项的介绍

复制代码代码如下所示:
{ CPP }
结构的选择
{
常量名称*;长选项名
国际has_arg; / /是否需要参数
标志;
Int Val;
};

名称:多头期权的名称
has_arg:是否需要参数值。有三例

复制代码代码如下所示:
{ CPP }
#定义no_argument 0 / /不需要参数
定义required_argument 1 / / #必须指定参数
#定义optional_argument 2 / /可选参数

国旗和Val
国旗和瓦尔是相互依存的,主要有两种情况:
(1),标志是NULL,并且使用瓦尔值来决定长选项,因此您需要为长选项指定一个唯一的值。
(2)标志不是空的,然后将值存储在标志所指示的存储空间中,用于标识长选项。
三.返回值
短的选项是在程序中使用的,和短的选项字符(比如‘n)返回,当参数是必需的,参数是返回之前存储在OPTARG不会。
长选项中使用的程序,并返回值是当国旗是空的旗帜和价值确定,Val返回值。所以不同的处理是基于价值的价值,这也表明值必须是唯一的。当val的值等于短的期权价值,你可以使用短选项解析函数来分析长选项。当国旗不为null,val值存储在由国旗的存储空间,并getopt_long返回0。
未定义的或长或短的选项,getopt_long回报
经过分析,getopt_long返回1
4。一个例子
理论要与现实相结合

复制代码代码如下所示:
{ CPP }
#包括
#包括
#包括 / / getopt_long()的头文件的位置

int main(int argc、argv char *)
{
const char* optstring =N V;
int c,Deb,指数;
结构的选择选择{ } = { { 用户名
{ 版本
{调试
0,0,0,0 } { };
而((C = getopt_long(argc、argv,optstring、选择、指标))!= 1)
{
开关(c)
{
case'n: / / N或用户名指定用户名
printf(用户名%s
打破;
case'v: / / V或版本,输出版本号
printf(版本0.0.1 ;
打破;
案例0:标志不是空的
printf(%d 调试
打破;
情况:未定义选项
printf(;
打破;
违约:
printf(C为D
打破;
}
}
返回0;
}

运行截图:
解释:getopt_long_only,这个功能是getopt_long相同,但它可以使用' ',-,其次是长和选定的项目名称,如:/主用户名杰基。

相关文章

聊天工具字体颜色问题

聊天工具字体颜色问题

字体颜色,聊天工具,电脑软件,林梦伟说,29日下午2时40分 我怎样才能把它写在数据袋里呢 办公软件故障 wangyijin回答在29日15:54 维修论坛 当房东说发送和接收一台机器时,字体颜色可以在输入框中选择,彩色笔记本维护论坛显示在接收框上。 双…

Oracle的权限、角色创建视图的方法

Oracle的权限、角色创建视图的方法

视图,方法,权限,角色,电脑软件,查看当前用户拥有的系统权限 复制代码代码如下所示: SELECT * FROM user_sys_privs; 系统特权管理员授予系统用户 复制代码代码如下所示: 创建用户时123456 / /确定创建用户 授予创建会话时 / /获得会话 授予创…

oracle用户权限管理方法

oracle用户权限管理方法

用户,方法,权限管理,电脑软件,oracle,系统管理员拥有最高权限。 系统;本地管理员,高级权限 史葛;普通用户,默认老虎解锁的默认密码 系统管理员拥有最高权限。 系统;本地管理员,高级权限 史葛;普通用户,默认老虎解锁的默认密码 二、着陆 SQLPLUS / …

WindowsLiveMessenger的修复和删除

WindowsLiveMessenger的修复和删除

方法,删除,电脑软件,WindowsLiveMessenger,Windows Live Messenger在操作中可能有错误,或者您想要修复它,或者您想删除它,您怎么做请看看你的化妆方法:学习电脑维修。 修复Windows Live Messenger电源故障 修复Windows Live Messenger:计算机…

该病毒程序enbiei过程enbiei.exe信

该病毒程序enbiei过程enbiei.exe信

信息查询,过程,程序,电脑软件,enbiei,点评:enbiei.exe是W32 / lovsan.worm蠕虫相关过程 进程文件:enbiei或enbiei.exe 进程名称:W32 / lovsan.worm 过程类别:安全风险的过程 英文描述: enbiei.exe加入系统由于W32 / lovsan.worm。这个程序是一…

详细介绍Linux数据恢复ext3greprmr

详细介绍Linux数据恢复ext3greprmr

数据恢复,详细介绍,电脑软件,Linux,ext3greprmrf,评论:Linux数据恢复ext3grep RM -射频方法介绍 Linux数据恢复ext3grep rm rf 1、先安装ext3grep软件:yum install ext3grep Y 2、卸载/ DATA0分区:umount /数据如果忙的提示,杀的是使用这个目…

经验:Win2000专业版安装指南

经验:Win2000专业版安装指南

安装指南,专业版,经验,电脑软件,经验:Win2000专业版安装指南 2000 / 03 / 16在14:18新浪科技 Windows 2000 RC1┊和后,微软发布了Windows 2000在9月15日 RC2(发布候选2)是为Windows 2000候选测试第二版,这可能是窗口 WS 2000最后一个测试版是官…

Linuxfgetcvs问题

Linuxfgetcvs问题

电脑软件,Linuxfgetcvs,看到一个汉字或字母数字符号的字符串前面有人,所以错误会被删除,但它是太多的麻烦。最后,找到一个函数模拟fgetcsv函数。 复制代码代码如下所示: 功能__fgetcsv($手柄,长度为零美元,美元D = '、',$ E =){ a preg_quote美元($…

什么过程是ati2plab.exe过程ati2pl

什么过程是ati2plab.exe过程ati2pl

过程,电脑软件,ati2plab,exe,点评:ati2plab.exe是显示卡相关的驱动程序 进程文件:ati2plab或ati2plab.exe 进程名称:ati2plab 过程类别:安全风险的过程 英文描述: ati2plab.exe是显示驱动程序的一部分。这个过程不应该 中文参考: ati2plab.exe…

Vista系统下windows审计功能的应用

Vista系统下windows审计功能的应用

审计,系统,功能,电脑软件,Vista,检查功能就像Windows的晴雨表,这样我们就可以了解计算机的每一个动作,并根据这些信息来维护计算机系统的安全性和故障排除能力。在Vista,审计功能比以往任何时候都更强大,本文将在Vista下讨论它的应用。 1。启…

Solaris根密码的解决方案

Solaris根密码的解决方案

解决方案,密码,电脑软件,Solaris,点评:如果Solaris不幸忘记了root密码,该怎么解决呢 答:可以有以下两种情况 1。工作站只有root用户,没有其他用户。 2。除了根用户之外,工作站还有其他用户。 1。如果网络连接,我们可以使用远程缓冲区溢出方法,…

随着网络硬盘SkyDrive系统不能使用

随着网络硬盘SkyDrive系统不能使用

提示,系统,登录,帐户,网络硬盘,点评:当你打开SkyDrive网络硬盘,你不能访问的文件,告诉我你需要登录微软帐户。这是很多朋友第一次遇到这个问题。接下来,看看具体的解决方案。我希望我们能帮你解决这个问题。 故障现象: 当你打开SkyDrive网络硬…