进一步了解程序运行(2)

1.环境变量

env查询默认:

储备:

我们在Linux终端上写的执行命令如何实现的呢?为什么我们写的代码运行要加./xxx进行运行呢?这便与命令行参数有关:

那么这些继承的参数,命令执行的路径怎么确定?

(1)常见环境变量(系统提供的具有“全局”属性)

a. (.PATH):指定命令的搜索路径

告诉shell该去哪一路径下查指令

默认:/usr/local/bin:(多个路径间用:连接)

进程启动时,子进程会从父进程那将.PATH继承下来

查看默认进程用echo$

b.(.HOME)记录当前用户家目录路径

c.(.SHELL)记录shell的版本

d.(.PWD)保存当前进程所在的工作路径

e.NAME:查看所在环境变量的名称

(2)获取环境变量属性:

(3)export

将本地变量变成环境变量

(4)补充:

环境变量可以被子进程继承

unset取消一个环境变量

指向环境变量表

2.进程地址虚拟空间

该地址不一定是物理地址(虚拟/线性)地址

先看一个现象:

为什么id地址相同却值不一样,且if else可以一起执行?

(1)进程地址空间本质上是一个内核数据结构对象(类似PCB)

处于进程与物理内存间的特殊存在

(2)空间地址中存在许多的区域划分存储各种属性

(3)地址空间上的地址本质上是一个数字,空间范围内的地址可以随意使用

图示:

3.总结:

对于父子进程来说他们的物理内存地址相同,当两者数据不做修改时,虚拟地址也一样,当修改:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值