getopt 分析命令行参数 -n -t 1

news/2025/6/6 0:04:56

在Linux中,我们常常用到 ls -l 等等之类带有选项项的命令,下面,让我们用C++来实现该类似的命令。

在实现之前,首先,我们来介绍一下一个重要函数:getopt()

表头文件 #include<unistd.h>
定义函数 int getopt(int argc,char * const argv[ ],const char * optstring);
函数说明:
用来分析命令行参数。参数 argc argv 是由 main() 传递的参数个数和内容。
参数 optstring为选项字符串, 告知 getopt()可以处理哪个选项以及哪个选项需要参数,如果选项字符串里的字母后接着冒号“:”,则表示还有相关的参数,全域变量optarg 即会指向此额外参数。
如果在处理期间遇到了不符合optstring指定的其他选项getopt()将显示一个错误消息,并将全域变量optarg设为“?”字符,如果不希望getopt()打印出错信息,则只要将全域变量opterr设为0即可。
C++实现例子:
int main(int argc, char **argv)
{int flag = 0;int type = 0;int opt;while(1){opt = getopt(argc, argv, "nt:");if(opt == '?')exit(EXIT_FAILURE);else if(opt == -1)break;switch(opt){case 'n':/*printf("AAAAAAAAA\n");*/flag |= IPC_NOWAIT;break;case 't':/*printf("BBBBBBBb\n");int n = atoi(optarg);printf("n = %d\n", n);*/type = atoi(optarg);break;}}
}

编译完之后,我们可以使用:./a.out   -n -t 1这样带有选项的命令执行

转载于:https://www.cnblogs.com/wiessharling/p/4056348.html

文章来源:https://blog.csdn.net/weixin_30466421/article/details/96298368
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:https://dhexx.cn/news/show-17089.html

相关文章

开启nginx的状态查询

1 进入nginx包装文件包的解压目录&#xff0c;需要加入http_stub_status_module 模块 #重新编译nginx ./configure --prefix/usr/local/nginx --with-http_stub_status_module make make install 2 进入 nginx安装目录 /usr/local/nginx/sbin 查看nginx版本 命令&#xff1…

kuka机器人齿轮箱油_机器人养护用润滑脂

机器人的保养是维护机器人的正常性能&#xff0c;维修是回复机器的性能&#xff0c;在日常的设备使用过程中&#xff0c;往往是注重修理而轻保养&#xff0c;甚至是“以修代养”。然而事实证明&#xff0c;机器人的异常磨损、故障的绝大部分是由于操作保养不当而造成的。EccoGr…

自定义函数与调用案例

1、实现一个用户管理系统&#xff08;要求使用容器保存数据&#xff09; [{name: xxx, pass: xxx, ……},{},{}] 代码&#xff1a; def menu():#创建菜单print("*" * 50)print(" " * 20 "欢迎使用用户管理系统&#xff01;")print(" &quo…

CentOS使用yum源中自带的rpm包安装LAMP环境

CentOS使用yum源中自带的rpm包安装LAMP环境。这是Linux下安装LAMP的环境一种最基本最简便的方式。新手可以从容安装使用。1. 安装基础包&#xff08;可选安装&#xff09;yum install -y wget zip unzip gzipyum install -y python ruby perlyum install -y gc gcc gcc-c2. 安装…

Metricbeat使用与入门-2 收集nginx指标数据到ES中,并用kibana展示

1 开启nginx的状态查询 &#xff0c;查看博文开启nginx的状态查询_小哇-CSDN博客 2 启用nginx module 命令&#xff1a;./metricbeat modules enable nginx 3 修改nginx module配置&#xff0c;命令&#xff1a;vim modules.d/nginx.yml , 内容如下&#xff1a; - module: n…

等于x分之a的平方的导数_这份公式,小学数学轻松100分

小学阶段在整个数学学习阶段是最简单的一个环节&#xff0c;但也是最不能忽视的环节&#xff0c;因为这个阶段是打基础的关键。数学的基础在于公式定理和概念等方面&#xff0c;是需要去细细理解的&#xff0c;想要做对数学里&#xff0c;那么一定要把课本中出现的公式定理吃透…

[LeetCode] Product of Array Except Self

Given an array of n integers where n > 1, nums, return an array output such that output[i] is equal to the product of all the elements of nums except nums[i]. Solve it without division and in O(n). For example, given [1,2,3,4], return [24,12,8,6]. 个人觉…

Mybatis -maven插件方式自动生成pojo,mapper文件代码(generatorConfig.xml)

1 新建springboot工程&#xff0c;添加maven依赖 <!-- mybatis-generator自动生成代码插件 --><plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifactId><version>1.3.5</ver…

c++ c++ 与 Java

1.c c 如果1个类的定义中包含另一个类&#xff0c;那么在stdafx.h中 被包含的类必须放在包含类的前面&#xff0c;不然编译器找不到被包含类&#xff0c;c没有包的概念&#xff0c;所以包含头文件时要注意顺序&#xff0c;而java不存在此问题。转载于:https://www.cnblogs.com…

带参函数_函数的参数类型

我们已经学习了如何定义一个函数并且调用这个函数&#xff0c;其实函数的定义和调用都不难&#xff0c;对吧&#xff1f;本节我们学习函数的几种常用参数类型&#xff0c;可能会稍微有些复杂哟&#xff0c;我们一起来看一下。位置参数位置参数是Python中最常见的参数&#xff0…