环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数
常见环境变量
PATH:指定命令的搜索路径HOME:指定用户的主工作目录HISTSIZE:保存历史命令记录的条数SHELL:当前的shell,它的值通常是/bin/bash相关命令
echo :显示某个环境变量的值export:设置一个新的环境变量,设置的环境变量是临时的env:显示所有环境变量unset:清除环境变量set:设置本地定义的shell变量和环境变量编写一个test.c程序并编译生成可执行程序,通常执行可执行程序要./test,而把可执行程序所在路径添加到环境变量中:export PATH = $PATH:test文件所在路径,可直接输入test执行可执行程序
组织环境变量
每个程序都会收到一张环境表,环境表是一个字符指针数组,每个指针指向一个以'\0'结尾的环境字符串
代码获取环境变量
#include <iostream> #include <stdlib.h> int main(int argc, char* argv[], char* env[]){ //命令行第三个参数 for(int i = 0; env[i]; ++i){ cout << env[i] << endl; } //第三方变量environ //全局变量environ是一个指向环境变量的全局变量,不包含在头文件中,要用extern声明 extern char** environ; for(int i = 0; environ[i]; ++i){ cout << environ[i] << endl; } return 0; }getenv
char* getenv(const char* name)获取环境变量的内容,name为环境变量名称putenv
int putenv(const char* name)改变环境变量的内容,如果环境变量存在,则内容会依参数改变,否则该参数是新的环境变量环境变量的特性
具有全局变量的属性可以被子进程继承虚拟地址空间作用
保护物理内存32位机器的每个虚拟地址空间都是4G,可以认为每个进程有4G的空间