【lesson11】环境变量

文章目录

  • 环境变量的认识
  • main函数参数问题

环境变量的认识

我们知道我们运行自己写的可执行程序的时候,我们必须带路径才能运行,可是执行系统指令的时候不用路径就能运行。
演示:
在这里插入图片描述
在这里插入图片描述
问题:系统命令可以直接运行,自己写的程序必须带路径这是为什么?
因为系统有环境变量,而系统指令的路径在环境变量所维护的路径中,自己的可执行程序没有在环境变量所维护的路径
查看:
在这里插入图片描述
所以当可执行程序运行,系统首先会在环境变量所维护的路径下查看有没有该可执行程序。
那么我们如何让自己的可执行程序不用带路径也能运行呢?
将该可执行程序的路径放入环境变量中。
演示:
在这里插入图片描述
在这里插入图片描述
我们看到,将路径放入环境变量中后,我们的可执行程序确实不用带路径就可以运行了。
PATH:指定命令的搜索路径。
env:查看系统中的所有环境变量。

演示:
在这里插入图片描述

修改环境变量一般只在本次对话中有效,下次登入后就无效了。除非更改配置,但是不建议这种做法。

main函数参数问题

main函数最多有三种参数。
在这里插入图片描述
我们看到最后的env指针数组,它是什么呢?
它就是环境变量,它是一个指针数组,指向各个环境变量
在这里插入图片描述

代码演示:
在这里插入图片描述

在这里插入图片描述
我们可以看到确实用代码打印出了环境变量。
还有系统给我们提供的获取环境变量的接口数组指针也可以打印环境变量。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
getenv函数:获取环境变量
在这里插入图片描述

演示:
在这里插入图片描述
在这里插入图片描述
我们可以看到,我们用getenv获取了PATH路径。

进程的环境变量是谁传的?
从父进程那继承下来的。
所以bash的环境变量就是,所有进程的环境变量。

证明:
在bash中添加一个环境变量,看代码中能不能输出。
在这里插入图片描述
在这里插入图片描述
我们看到了确实获取了我们自定义的变量。

结论:子进程的环境变量是从父进程那继承来的,默认所有环境变量都会被子进程继承。

所以环境变量具有全局属性。但不是所有具有全局属性的变量都是环境变量。这里就不演示了。
set:打印所有全局变量。
在这里插入图片描述
main函数的argc和argv叫做命令行参数。
argc是多少就觉定argv数组有几个参数

演示:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
有很多人肯或有疑问,这个有什么用?
我们学了ls指令,ls参数不同就会有不同的功能,那么是怎么实现的呢?
代码简单演示:
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

作为一名独立开发者,如何获取客户?

很多程序员想成为一名独立开发者,从事自由职业,最大的困难在于如何赚钱,进一步来说,就是如何找到自己的客户,有很多开发者拥有丰富的经验,优秀的能力,但无法吸引客户。这篇文章的灵感正是为此而…

[密码学入门]仿射密码(Affine)

加密算法y(axb)mod N 解密算法x*(y-b)mod N(此处的为a关于N的乘法逆元,不是幂的概念) 如何求,涉及的知识挺多,还没想好怎么写,丢番图方程,贝祖定理(又译裴蜀定理),扩展欧…

【kafka实战】01 3分钟在Linux上安装kafka

本节采用docker安装Kafka。采用的是bitnami的镜像。Bitnami是一个提供各种流行应用的Docker镜像和软件包的公司。采用docker的方式3分钟就可以把我们想安装的程序运行起来,不得不说真的很方便啊,好了,开搞。使用前提:Linux虚拟机&…

使用Python接口自动化测试post请求和get请求,获取请求返回值

引言 我们在做python接口自动化测试时,接口的请求方法有get,post等;get和post请求传参,和获取接口响应数据的方法; 请求接口为Post时,传参方法 我们在使用python中requests库做接口测试时,在做post接口测试…

软件安全测试详细总结

摘要 安全性测试从冷门的话题,随着国内各大知名网站频繁被攻击,重要社区用户信息被泄露,逐步被各方所重视。而具体怎么做软件安全性测试,防止骇客有机可乘,国内普遍处于才起步的状态。今天笔者就自己的经验&#xff0…

大咖共探AGI时代机遇,腾讯云助力大模型规模化应用提速

引言 2023 年,科技圈的“顶流”莫过于大模型。自 ChatGPT 的问世拉开大模型与生成式 AI 产业的发展序幕后,国内大模型快速跟进,已完成从技术到产品、再到商业的阶段跨越,并深入垂直行业领域。 新技术的爆发,催生新的应…

网络安全内网渗透之DNS隧道实验--dnscat2直连模式

目录 一、DNS隧道攻击原理 二、DNS隧道工具 (一)安装dnscat2服务端 (二)启动服务器端 (三)在目标机器上安装客户端 (四)反弹shell 一、DNS隧道攻击原理 在进行DNS查询时&#x…

【Linux is not Unix】Linux前言

目录 二战军工的产物——第一台现代电子数字计算机ENIAC(埃尼阿克) Unix Linux Linux企业应用现状 如今计算机已经应用在我们生活的各个层面,像我们日常使用的笔记本是计算机的一类,可以解决我们生活中遇到的很多问题&#xff…

竞赛 基于视觉的身份证识别系统

0 前言 🔥 优质竞赛项目系列,今天要分享的是 基于机器视觉的身份证识别系统 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🧿 更多资料, 项目分享: https://gitee.com/dancheng-sen…

根据文章段落内容自动插入图片php版

每篇内容根据段落判断插入图片代码附上&#xff1a; $chatd"<table>";if(stripos($content,$chatd)0){//随机输出三张图功能if($moduleid!37 &&$thumb){//判断是否存在图$idrand(1,999999);$midrand(1,9999999);$getimg"http://www.nongpin88.co…

c语言练习66:模拟实现offsetof

模拟实现offsetof #define offsetof(StructType, MemberName) (size_t)&(((StructType *)0)->MemberName) StructType是结构体类型名&#xff0c;MemberName是成员名。具体操作方法是&#xff1a; 1、先将0转换为一个结构体类型的指针&#xff0c;相当于某个结构体的首…

【Unity】LODGroup 计算公式

Unity 在配置 LodGroup 时&#xff0c;其分级切换的计算方法是按照物体在相机视野中占据的比例计算的。在运行时&#xff0c;如果相机视野范围&#xff08;Field of View&#xff09;没有改变&#xff0c;那么这个值可以直接换算成物体距离相机的距离。这里就讨论下如何计算得到…

线性表(1)

线性表即“把所有数据按照顺序&#xff08;线性&#xff09;的存储结构方式&#xff0c;存储在物理空间”。 线性表又分为 顺序表链表 单向链表双向链表 一、顺序表 数据依次存储在连续的物理空间中&#xff0c;就比如数组。 顺序表存储数据时&#xff0c;会提前申请一整块足够…

树莓派上使用kettle将文本文档导入mariadb

目录 1 连接MariaDB的前置条件 2 test.txt 3 在mariadb中创建数据库和数据表 4 在kettle中的操作 4.1 新建任务 4.2 连接数据库 4.3 文本文件输入 4.4 表输出 4.5 运行 4.6 结果 1 连接MariaDB的前置条件 首先你的mariaDB要有密码&#xff0c;我当前的用…

MQ - 32 基础功能:消息查询的设计

文章目录 导图概述什么时候会用到消息查询消息队列支持查询的理论基础消息数据存储结构关于索引的一些知识点内核支持简单查询根据 Offset 查询数据根据时间戳查询数据根据消息 ID 查询数据借助第三方工具实现复杂查询第三方引擎支持查询工具化简单查询总结导图 概述 从功能上…

智慧农业系统源码 智慧农业小程序源码

智慧农业系统源码 智慧农业小程序源码 一&#xff1a;智慧农业功能 1、有效改善农业生态环境 将农田、畜牧养殖场、水产养殖基地等生产单位和周边的生态环境视为整体,并通过对其物质交换和能量循环关系进行系 统、精密运算,保障农业生产的生态环境在可承受范围内,如定量施肥不…

【前端】零基础快速搞定JavaScript核心知识点

文章目录 1.初识JavaScript1.1.JavaScript语言简介1.2.JavaScript引入方式和注释1.3.Javascript变量声明详解1.4.JavaScript变量提升详解 2.JavaScript基础数据类型2.1.JavaScript基础数据类型简介2.2.基础类型数据-Number2.3.基础类型数据-String2.4.基础类型数据-Boolean2.5.…

javaee之黑马乐优商城6

商品品牌的查询 上面就是我们需要根据分类id去找品牌 假设我们现在拿到的是 商品的分类id&#xff0c;我们需要根据分类id查询出对应的品牌即可 下面我们拿到上面的接口&#xff0c;直接撸代码 这个是和品牌相关联的操作&#xff0c;因为先去看一下BrandMapper,这个mapper是…

Vue3 动态组件 component:is= 失效

错误代码 用Vue3&#xff0c;组件无需注册&#xff0c;所以就会提示“注册了不不使用”的报错&#xff0c; 于是用了异步注册&#xff0c;甚至直接为了不报错就在下面使用3个组件&#xff0c;有异步加载&#xff0c;但还是实现不了预期效果 <script setup> import { re…

Linux内核启动流程-第二阶段rest_init函数

一. Linux内核启动 上一篇文章简单了解了 Linux内核启动第二阶段&#xff0c;涉及的 start_kernel函数。start_kernel 函数最后调用了 rest_init 函数&#xff0c;接下来简单看一下 rest_init 函数。 本文续上一篇文章的学习&#xff0c;地址如下&#xff1a; Linux内核启…