当前位置: 首页 > news >正文

环境变量1

我们今天开始学习环境变量,在此之前我们先接触一下命令行参数是什么

命令行参数

如上图所示,没想到main函数还可以带参数,argc和argv就是命令行参数,argc在C++11里面叫可变参数模板,这里同样可变,argc是参数的个数,char* argv是一个数组,叫参数的清单。运行上面代码可知如下结论:

1。在makefile里面加上-std=c99,因为之前的版本不支持直接在for循环中定义参数。我们可以看./code后面不加任何的参数,argc默认为1,每多加一个argc和argv就多添加一个,这不就和命令行指令带选项很像了吗。后面带着不同的选项argv和argc就有不同的效果。

所以为什么要有命令行参数,就是为了使同一个程序可以根据选项的不同表现出不同的功能,比如:指令中的选项。

那main函数的这些可变参数是谁在传递的呢,ls -a -l -n这么多选项其实就是一个字符串,当你输入的时候首先被shell拿到,字符串就相当于进程了,shell调度这个进程,将这些选项拆解为若干个单个的选项,然后形成一张argv表和其拆解的元素个数argc,argv表存储指令对应的效果,最后以NULL结尾,这些命令行在起动的时候父进程都是shell。

2。编译器,操作系统,加载器不是互相割裂的,彼此有关系。

举例论证命令行参数

我们可以写一个程序来验证命令行参数可以使同一个程序可以根据选项的不同表现出不同的功能。如下:

代码不解释哈。

可以看到确实带了不同选项就体现了不同功能。

环境变量(env)

环境变量存放在env数组里面,操作系统有多个环境变量。

http://www.dtcms.com/a/26827.html

相关文章:

  • 在项目中调用本地Deepseek(接入本地Deepseek)
  • 基于ffmpeg+openGL ES实现的视频编辑工具-字幕添加(六)
  • Django项目之订单管理part1
  • VS Code 如何搭建C/C++开发环境
  • Aseprite绘画流程案例(1)——画相机图标
  • Ubuntu 下 nginx-1.24.0 源码分析 - ngx_test_full_name
  • 如何使用Spark SQL进行复杂的数据查询和分析
  • 一些耳朵起茧子的名词解释
  • 快速查询区间overlap的C/C++库:cgranges
  • C++ Primer 类的作用域
  • vue3项目的创建与配置
  • tailscale + derp中继 + 阿里云服务器 (无域名版)
  • 02.19 构造函数
  • 深度解析:使用 Headless 模式 ChromeDriver 进行无界面浏览器操作
  • 数据录入与处理岗位
  • LeetCode - 18 四数之和
  • numpy(01 入门)
  • goland无法debug项目
  • pdf转换成word在线 简单好用 支持批量转换 效率高 100%还原
  • Qt之多线程处理
  • MySQL六大日志的功能介绍。
  • c++标准io与线程,互斥锁
  • Django 连接(sqlserver)数据库方法
  • DeepSeek + Mermaid编辑器——常规绘图
  • IO进程 day01
  • SpringBoot原理
  • go-micro
  • 在C#中动态访问对象属性时,用表达式树可以获得高效性能
  • line 1: $‘\r‘: 解决linux和windows换行符问题
  • 【3.2JavaScript】JavaScript语法基础