09 - 进程长参数编程

news2025/2/25 12:02:16

---- 整理自狄泰软件唐佐林老师课程

查看所有文章链接:(更新中)Linux系统编程训练营 - 目录

文章目录

  • 1. 短选项扩展编程
    • 1.1 再论进程参数(短选项)
    • 1.2 进程短选项示例
  • 2. 进程长参数编程
    • 2.1 进程长参数示例
    • 2.2 进程长参数规范
    • 2.3 Linux启动长参数(命令行长参数)编程
      • 2.3.1 长参数编程示例
      • 2.3.2 另一种长参数编程模式
  • 3. 进程参数变种玩法 ==> 统一长短参数
    • 3.1 统一长短参数示例
    • 3.2 进程参数编程总结

1. 短选项扩展编程

1.1 再论进程参数(短选项)

注释:进程参数 多数情况下也会称作 启动参数命令行参数

  • 选项,选项值,操作数 组成
  • 选项由短横线( - )开始,选项名必须是单个字母或单个数字字符
  • 选项可以有选项值,选项与选项值之间可用空格分隔( -o test <== >-otest )
  • 如果多个选项均无选项值,可合而为一( -a -b -c <==> -abc )
  • 既不是选项,也不能作为选项值的参数是操作数
  • 第一次出现的双横线( – )用于结束所有选项,后续参数为操作数

1.2 进程短选项示例

  • 规则: if:s::
    • s:: 表示 -s 不一定需要选项值,若有选项值只能以 -svalue 的方式指定
  • 示例:

在这里插入图片描述

【参看链接】:09 - 进程长参数编程 / 00短选项扩展 / short.c

在这里插入图片描述

2. 进程长参数编程

2.1 进程长参数示例

在这里插入图片描述

2.2 进程长参数规范

  • 由选项,选项值,操作数组成
  • 选项由双横线( – )开始,选项名可以是有意义的字符序列
  • 选项可以有选项值,选项与选项值可用 空格 / 等号 分隔( --demo test <==> --demo=test )
  • 既不是选项,也不能作为选项值的参数是操作数
  • 第一次出现的双横线( – )用于结束所有选项,后续参数为操作数

2.3 Linux启动长参数(命令行长参数)编程

在这里插入图片描述
在这里插入图片描述

  • getopt_long(…) 从argc和argv中获取下一个选项
  • getopt_long(…) 同时支持 短选项长选项
    • 短选项:通过 规则字符串 指定支持的选项
    • 长选项:通过 struct option结构体 指定支持的选项
  • 默认情况下:getopt_long(…) 对argc进行重排,所有操作数位于最后位置

2.3.1 长参数编程示例

在这里插入图片描述

【参看链接】:09 - 进程长参数编程 / 01长选项 / long.c

在这里插入图片描述
在这里插入图片描述

2.3.2 另一种长参数编程模式

在这里插入图片描述

【参看链接】:09 - 进程长参数编程 / 02长选项扩展 / long.c

在这里插入图片描述
在这里插入图片描述

3. 进程参数变种玩法 ==> 统一长短参数

  • int getopt_long_only(argc, argv[], optstring, longopts, longindex);
    • 对于以单横线( - )起始的参数
      直接查找长参数选项,若查找失败,则查找短参数选项
    • 对于以双横线( – )起始的参数
      直接查找长参数选项,若查找失败,则查找失败

3.1 统一长短参数示例

在这里插入图片描述

【参看链接】:09 - 进程长参数编程 / 03统一长短参数 / get_long_only.c

在这里插入图片描述

3.2 进程参数编程总结

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/561419.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MATLAB NAN或INF无效点去除 (14)

MATLAB NAN或INF无效点去除 (14) 一、算法介绍二、算法实现1.代码(含注释说明)2.效果(无效点去除前后点坐标展示)一、算法介绍 仅就一般情况来说,激光点云受到测量影响,可能会产生无效点,即坐标值为NAN或者INF等,这种点会严重干扰一些几何特征,例如法向等的计算,因…

HummerRisk V1.1.0 发布

HummerRisk V1.1.0发布&#xff1a; 重构了新的Dashboard&#xff0c;新增报告中心&#xff0c;增加新的 Linux 主机系统的安全扫描、安全审计功能。增加部分Docker相关的主机检测&#xff0c;镜像仓库新增公有云阿里云、腾讯云类型&#xff0c;新增镜像分组管理等功能&#x…

chatgpt赋能Python-python_os拷贝文件

Python os拷贝文件 – 从简介到实现 Python os库是一个经常使用的工具&#xff0c;它是Python的标准库&#xff0c;提供了与操作系统进行交互的函数和方法。其中&#xff0c;os拷贝文件是其常用的功能之一&#xff0c;可以用来实现文件备份、文件复制等等操作。接下来&#xf…

pthread多线程: 线程泄漏的检测

文章目录 1. 目的2. 什么是线程泄漏3. pthread 线程泄漏例子3.1 代码3.2 编译和运行3.3 简要分析 4. 检测线程泄漏4.1 编译链接时传入参数 -fsanitizethread4.2 确认 TSAN_OPTIONS 环境变量 5. 修复线程泄漏5.1 方法1&#xff1a; 主线程等待子线程5.2 方法2&#xff1a;子线程…

k8s网络如何连接?

在k8s中网络连接可以分为 容器与容器: 所有在pod中的容器表现为在同一个host&#xff0c;他们之间可以通过端口进行连接 pod与pod: 因为每个pod都有一个ip&#xff0c;因此pod可以通过ip进行直接连接 在不同主机上pod究竟是如何连接的呢&#xff1f;毕竟pod ip只是虚拟的&…

Vue+Element-ui实现表格导出和导入

表格导出&#xff0c;填写数据&#xff0c;导入表格 需求&#xff1a;表格导出&#xff0c;填写数据&#xff0c;导入数据表格文件存储在前端表格文件不存储 需求&#xff1a;表格导出&#xff0c;填写数据&#xff0c;导入数据 分析需求&#xff1a; &#xff08;1&#xff0…

【Leetcode60天带刷】day01——704.二分查找、27.移除元素

题目&#xff1a; 704. 二分查找 Leetcode原题链接&#xff1a;力扣704.二分查找 思考历程与知识点&#xff1a; 考查二分查找能力&#xff0c;注意mid的取值。 注意&#xff1a; 右端点的大小&#xff0c;需要在数组长度上-1。也就是nums.size()-1&#xff0c;因为下标是从…

chatgpt赋能Python-python_numpy_转置

Python Numpy 转置 - 高效处理数据的必备技巧 作为一名专注于Python编程的工程师&#xff0c;你可能已经知道了 Python 编程语言的优雅以及Numpy 库的高效操作。在进行数值计算和数据处理方面&#xff0c;Numpy 库已成为 Python 可以与其他编程语言匹敌的主要原因之一。其中一…

Vue 3 第二十二章:组件十(组件高级特性-组件的渲染函数和JSX/TSX语法)

文章目录 1. 渲染函数2. JSX / TSX 语法2.1. 基本使用2.2. 使用 vue 中的语法2.2.1. {} 语法2.2.2. v-model 使用2.2.3. v-show 使用2.2.4. v-if 不支持&#xff0c;实现v-if功能2.2.5. v-for 不支持&#xff0c;实现 v-for 功能2.2.6. v-bind 不支持&#xff0c;模拟 v-bind2.…

AWD竞赛全流程解析

AWD(Attack With Defense&#xff0c;攻防兼备)是一个非常有意思的模式&#xff0c;你需要在一场比赛里要扮演攻击方和防守方&#xff0c;攻者得分&#xff0c;失守者会被扣分。也就是说&#xff0c;攻击别人的靶机可以获取 Flag 分数时&#xff0c;别人会被扣分&#xff0c;同…

汇编十三、串口

1、通信相关概念 (1)单工&#xff1a;只能接收或只能发送数据。 (2)半双工&#xff1a;既能发送数据&#xff0c;也能接收数据&#xff0c;但不能同时进行。 (3)全双工&#xff1a;可以同时进行发送和接收数据。 (4)单片机中常用的通信物理接口&#xff1a;I2C、SPI、USB、…

tushare单个股票过去五年的数据整理与预测

文章目录 前言&#xff1a;1. 导入相关包2. 数据预处理3. 构建模型3. 模型训练4. 检查数据6. 工作中其他常用包记录 前言&#xff1a; %md 在量化投资中&#xff0c;计算收益率是更常见的做法&#xff0c;而不是仅计算股价。计算收益率可以更好地反映投资的回报情况&#xff0c…

Pinctrl子系统_01_Pinctrl子系统介绍

本节介绍在Pinctrl子系统中&#xff0c;将会学习哪些内容。 Pinctrl作用 Pinctrl&#xff1a;Pin Controller&#xff0c;顾名思义&#xff0c;就是用来控制引脚的。 一个芯片有成百上千个引脚&#xff0c;这些引用要怎么配置&#xff0c;配置成什么功能&#xff0c;都是通P…

python+django网上书籍商城小说在线阅读分享下载系统k19is-vue

为了解决用户便捷地在网上购物以及下载文件&#xff0c;本文设计和开发了一个网页小说阅读系统。本系统是基于 B/S架构设计&#xff0c;Dango框架 &#xff0c;Python技术的前台页面设计与实现&#xff0c;使用Mysql数据库管理来完成系统的相关功能。主要实现了管理员与用户的注…

ETSI TS-关于SCP80

描述 GPC_UICC Configuration_v2.0.pdf 中: 规范 ts_102.225v12.1.0 Secured packet structure for UICC based applications.pdf spi kic kid编码 7 TCP/IP 的实现 在发送安全数据包之前&#xff0c;发送实体应使用定义的推送机制打开 TCP/IP 连接 在 ETSI TS 102 226 [9] …

【MATLAB第34期】基于MATLAB的2023年棕熊优化算法BOA优化LSTM时间序列预测模型 优势明显,注释详细,绘图丰富

【MATLAB第34期】基于MATLAB的2023年棕熊优化算法BOA优化LSTM时间序列预测模型 优势明显&#xff0c;注释详细&#xff0c;绘图丰富&#xff0c;适合小白 一、代码优势 1.使用2023年棕熊算法BOA优化LSTM超参数&#xff08;学习率&#xff0c;隐藏层节点&#xff0c;正则化系数…

chatgpt赋能Python-python_numpy倒序

Python Numpy倒序&#xff1a;简介、使用和优势 简介 Python是一门功能强大的编程语言&#xff0c;提供了众多开源库&#xff0c;其中Numpy是其中最流行的之一。Numpy是Python中的一个数值计算库&#xff0c;提供了一个高效的数组对象和相应的数学函数。它是数据科学家和机器…

Thonny-适合初学者小白的开箱即用的轻量级 Python IDE

如果你是一位Python初学者小白,那最适合Thonny它了&#xff0c;如果不是初学者&#xff0c;请选择PyDev和Pycharm。 Thonny是一款面向初学者小白的轻量级 IDE&#xff0c;可以让初学者更好更快的入门上手 Python&#xff0c;而不致于在环境上浪费过多的时间。 取之 Python&…

chatgpt赋能Python-python_purple

Python Purple: 一个高效的Python IDE Python Purple是Python程序员们最需要的工具之一。它是一款高效的Python IDE&#xff0c;允许用户轻松地创建&#xff0c;编辑和协作开发Python代码。本文将涉及Python Purple的一些重要特点以及它如何提高编码质量和提高生产力。 介绍P…

【利用AI让知识体系化】TypeScript目标:扩展JavaScript能力

I. TypeScript 简介 TypeScript 的起源 TypeScript 的起源是由微软公司开发&#xff0c;其首席架构师是 Anders Hejlsberg。Anders 是 Delphi 和 C# 语言的创始人&#xff0c;于2012年从微软发布了 TypeScript。 TypeScript 诞生的原因是为了解决 JavaScript 的一些缺点&…