【Linux系统编程】环境变量,进程地址空间与进程控制

发布时间:2026/7/15 1:38:52

【Linux系统编程】环境变量,进程地址空间与进程控制 环境变量通常具有某些特殊⽤途还有在系统当中通常具有全局特性。2常见环境变量PATH : 指定命令的搜索路径HOME : 指定用户的主工作目录(即用户登录到Linux系统中时,默认的⽬录)SHELL : 当前Shell,它的值通常是/bin/bash。3查看环境变量的方法echo $NAME //NAME:你的环境变量名称4和环境变量相关的命令echo: 显⽰某个环境变量值export: 设置⼀个新的环境变量env: 显⽰所有环境变量unset: 清除环境变量set: 显⽰本地定义的shell变量和环境变量5环境变量的组织方式每个程序都会收到⼀张环境变量表环境变量表是⼀个字符指针数组每个指针指向⼀个以’\0’结尾的字符串。6通过系统调用获取和设置环境变量常⽤getenv和putenv函数来访问特定的环境变量。代码语言javascriptAI代码解释#include stdio.h #include stdlib.h int main() { printf(%s\n, getenv(PATH)); return 0; }7环境变量通常具有全局性环境变量通常具有全局属性可以被子进程继承下去。二进程地址空间/虚拟地址空间分页虚拟地址空间缺页中断使用虚拟地址通过页表查看物理地址虚拟地址合法但是物理地址找不到操作系统此时会将代码和数据加载到内存中并填充页表进程就可以继续运行了。写时拷贝父子进程将数据部分的权限设置为只读当某一个进行写的时候操作系统就会识别出需要进行写时拷贝。野指针通过虚拟地址查找物理地址时找不到。其中mm_struct中还包含struct vm_area_struct*的链表来管理堆空间因为堆可能有多个或者管理其他空间。三进程控制1进程创建在 linux 中 fork 函数是非常重要的函数它从已存在进程中创建⼀个新进程。新进程为子进程而原进程为父进程。代码语言javascriptAI代码解释include unistd.h pid_t fork(void); //返回值⼦进程中返回0⽗进程返回⼦进程id出错返回-1进程调用 fork 当控制转移到内核中的 fork 代码后内核做分配新的内存块和内核数据结构给子进程将父进程部分数据结构内容拷贝至子进程添加子进程到系统进程列表当中fork 返回开始调度器调度

相关新闻