化妆品公司的网站建设策划书,要想学做网站,网页设计文员0基础招培训,深圳物流公司联系电话文章目录 环境变量常见的环境变量查看环境变量环境变量的修改与使用环境变量的组织⽅式环境变量的命令通过代码如何获取环境变量环境变量的继承 前言#xff1a;在Linux系统中#xff0c;环境变量和程序地址空间是系统管理和进程运行的重要组成部分。本文将详细探讨环境变量的… 文章目录 环境变量常见的环境变量查看环境变量环境变量的修改与使用环境变量的组织⽅式环境变量的命令通过代码如何获取环境变量环境变量的继承 前言在Linux系统中环境变量和程序地址空间是系统管理和进程运行的重要组成部分。本文将详细探讨环境变量的作用、如何查看和操作环境变量并深入了解Linux进程的地址空间及其虚拟内存管理机制。
环境变量
基本概念: 环境变量是操作系统用来指定程序运行环境的参数。它们通常以键值对的形式存储在操作系统中。程序在启动时系统会将这些环境变量传递给它们。通过环境变量程序能够获得一些必要的运行信息如路径、用户名、主目录等。
在开发过程中我们经常利用环境变量来简化操作。例如C/C编译时如果某些库的路径已被设置为环境变量编译器就能自动找到它们而不需要手动指定路径。
常见的环境变量
PATH指定命令的搜索路径。操作系统根据此变量查找可执行文件。HOME指定用户的主工作目录即用户登录后默认的目录。SHELL当前Shell的类型通常是/bin/bash。
查看环境变量
你可以使用echo命令来查看环境变量的值
echo $NAME例如要查看PATH变量
echo $PATH环境变量的修改与使用
修改PATH假设你编写了一个C程序并生成了hello可执行文件。通常我们需要带上路径才能执行程序但你可以通过修改环境变量PATH使得程序路径自动被查找
export PATH$PATH:/path/to/your/program这样你就可以直接通过hello命令运行程序而无需指定完整路径。
设置环境变量通过export命令设置新的环境变量
export MYENVHello World在程序中你可以使用getenv(“MYENV”)来访问该环境变量。
环境变量的组织⽅式 每个程序都会收到⼀张环境表环境表是⼀个字符指针数组每个指针指向⼀个以’\0’结尾的环境字符串
环境变量的命令
echo显示环境变量的值。export设置环境变量。env显示所有环境变量。unset清除环境变量。set显示本地定义的Shell变量和环境变量。
通过代码如何获取环境变量
通过C代码我们可以访问和修改环境变量。例如利用getenv函数获取环境变量
#include stdio.h
#include stdlib.hint main()
{printf(%s\n, getenv(PATH));return 0;
}
//这个程序会打印出当前的PATH变量的值。命令⾏第三个参数
#include stdio.h
int main(int argc, char *argv[], char *env[])
{int i 0;for(; env[i]; i){printf(%s\n, env[i]);}return 0;
}通过第三⽅变量environ获取
#include stdio.h
int main(int argc, char *argv[])
{extern char **environ;int i 0;for(; environ[i]; i){printf(%s\n, environ[i]);}return 0;
}libc中定义的全局变量environ指向环境变量表,environ没有包含在任何头⽂件中,所以在使⽤时要⽤extern声明。
环境变量的继承
环境变量通常具有全局属性可以被⼦进程继承下去,子进程会继承父进程的环境变量。因此当父进程设置环境变量后子进程可以访问和修改这些变量。
#include stdio.h
#include stdlib.h
int main()
{char *env getenv(MYENV);if(env){printf(%s\n, env);}return 0;
}直接查看发现没有结果说明该环境变量根本不存在
导出环境变量
export MYENV“hello world” 再次运⾏程序发现结果有了说明环境变量是可以被⼦进程继承下去的