04 - 进程参数编程
创始人
2025-05-31 09:43:06
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 思考

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

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...