09 - 进程长参数编程

news/2024/11/8 4:07:36/

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

查看所有文章链接:(更新中)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.ppmy.cn/news/93318.html

相关文章

在windows下安装linux和kali子系统

目录 安装子系统 报错解决官方方法 步骤 1 - 启用适用于 Linux 的 Windows 子系统 步骤 2 - 检查运行 WSL 2 的要求 步骤 3 - 启用虚拟机功能 步骤 4 - 下载 Linux 内核更新包 步骤 5 - 将 WSL 2 设置为默认版本 步骤 6 - 安装所选的 Linux 分发 排查安装问题 下载发行…

Mongodb——快速入门,2个小时足够了

目录 1、Mongodb概述 1.1、为何使用Mongodb&#xff1f; 1.2、业务应用场景 1.3、Mongodb和MySQL的区别 2、Mongodb安装 2.1、Windows系统中安装启动 3、Mongodb的操作 3.1、数据库操作 3.2、集合操作 3.2.1、集合显式创建 3.2.2、集合的隐式创建 3.2.3集合的删除 …

语法速通 uni-app随笔【uni-app】【微信小程序】【vue】

1、微信小程序 1.1、wx 小程序 工程目录 其中&#xff0c; pages目录/index目录【必有】&#xff1a; index.js 编写业务逻辑 【初始数据&#xff0c;生命周期函数】 index.json 编写配置 index.wxml 编写模板 【可理解为本页html】 index.wxss 【可理解为本页css】 1.2、wx…

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

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

Windows Subsystem for Linux (WSL)安装Ubuntu 0x80070005的问题

文章目录 小结问题解决参考 小结 在Windows 11中安装Windows Subsystem for Linux (WSL)&#xff0c; 并安装Ubuntu 22.04.2 LTS&#xff0c;碰到了棘手的问题报错&#xff1a;0x80070005&#xff0c; 进行了解决。 问题 在Windows 11的微软应用商店Microsoft Store中安装Ub…

C++中读写文件方法(fstream用法)

文章目录 前言一、 打开文件方法二、读写方法三、读写文本示例1、文本文件操作示例&#xff1a;2、二进制文件读写示例&#xff1a; 总结 前言 日常工作中肯定会用到文件读写操作&#xff0c;C STL中 fstream 是一种用于文件读写的流类&#xff0c;它可以方便地对文件进行输入…

服务器模型 setsockopt 网络超时检测 广播组播和unix域套接字 5.23

四.服务器模型 1.循环服务器 TCP服务器 TCP服务器端运行后等待客户端的连接请求。 TCP服务器接受一个客户端的连接后开始处理&#xff0c;完成了客户的所有请求后断开连接。 TCP循环服务器一次只能处理一个客户端的请求。 只有在当前客户的所有请求都完成后&#xff0c;服务…

Java-API简析_java.lang.Class类(基于JDK1.8)(浅析源码)

【版权声明】未经博主同意&#xff0c;谢绝转载&#xff01;&#xff08;请尊重原创&#xff0c;博主保留追究权&#xff09; https://blog.csdn.net/m0_69908381/article/details/130838927 出自【进步*于辰的博客】 其实我的【Java-API】专栏内的博文对大家来说意义是不大的。…