04 - 进程参数编程
迪丽瓦拉
2025-05-31 11:16:10
0

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

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

文章目录

  • 1. 问题
    • 1.1 再论execve(...)
    • 1.2 main函数(默认进程入口)
    • 1.3 进程空间概要图
    • 1.4 编程实验:进程参数剖析
      • 1.4.1 进程空间实验
      • 1.4.2 父子进程参数实验
    • 1.5 Linux启动参数(命令行参数)规范
      • 1.5.1 Linux启动参数(命令行参数)解析
      • 1.5.2 Linux启动参数(命令行参数)编程
      • 1.5.3 编程实验:进程参数编程
    • 1.6 思考

1. 问题

  • execve(…)的参数是什么?有什么意义?

在这里插入图片描述

1.1 再论execve(…)

在这里插入图片描述

1.2 main函数(默认进程入口)

  • int main(int argc, char* argv[])

在这里插入图片描述

1.3 进程空间概要图

在这里插入图片描述

1.4 编程实验:进程参数剖析

1.4.1 进程空间实验

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

1.4.2 父子进程参数实验

  • 下面的程序输出什么?why?

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

1.5 Linux启动参数(命令行参数)规范

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

1.5.1 Linux启动参数(命令行参数)解析

  • 规则if:s ==> -i -s -f+选项值
  • 示例:
    在这里插入图片描述

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

在这里插入图片描述

  • getopt(…) 从argc和argv中获取下一个选项

    • 选项 合法返回值选项字符optarg 指向 选项值字符串
      在这里插入图片描述
    • 选项 不合法返回字符“ ? ”,optopt 保存 当前选项字符(错误)
    • 选项 合法但缺少选项值返回“ : ”,optopt 保存 当前选项字符(错误)
  • 默认情况下:getopt(…)对argv进行重排,所有操作数位于最后位置
    在这里插入图片描述

  • optstring规则 的扩展定义
    起始字符可以是 “ :,+,- 或省略 ”

    • 省略:出现选项错误时,程序中通过“ : ”或“ ? ”进行处理并给出默认错误提示
    • ::错误提示开关,程序中通过返回值“ : ”或“ ? ”进行处理(无默认错误提示)
    • +:提前停止开关,遇见操作数时,返回 -1,认为选项处理完毕(后续都是操作数)
    • -:不重排开关,遇见操作数时,返回 1,optarg指向操作数字符串
    • 组合:“ +: ” or “ -: ”

1.5.3 编程实验:进程参数编程

  1. 规则:“ f:is ”

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

  1. 规则扩展:“ :f:is ”

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

  1. 规则扩展:“ +:f:is ”

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

  1. 规则扩展:“ -:f:is ”

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

1.6 思考

  • 环境变量是什么?有什么意义?

相关内容

热门资讯

linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
C++ 机房预约系统(六):学... 8、 学生模块 8.1 学生子菜单、登录和注销 实现步骤: 在Student.cpp的...
A.机器学习入门算法(三):基... 机器学习算法(三):K近邻(k-nearest neigh...
数字温湿度传感器DHT11模块... 模块实例https://blog.csdn.net/qq_38393591/article/deta...
有限元三角形单元的等效节点力 文章目录前言一、重新复习一下有限元三角形单元的理论1、三角形单元的形函数(Nÿ...
Redis 所有支持的数据结构... Redis 是一种开源的基于键值对存储的 NoSQL 数据库,支持多种数据结构。以下是...
win下pytorch安装—c... 安装目录一、cuda安装1.1、cuda版本选择1.2、下载安装二、cudnn安装三、pytorch...
MySQL基础-多表查询 文章目录MySQL基础-多表查询一、案例及引入1、基础概念2、笛卡尔积的理解二、多表查询的分类1、等...
keil调试专题篇 调试的前提是需要连接调试器比如STLINK。 然后点击菜单或者快捷图标均可进入调试模式。 如果前面...
MATLAB | 全网最详细网... 一篇超超超长,超超超全面网络图绘制教程,本篇基本能讲清楚所有绘制要点&#...