欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

linux环境变量

程序员文章站 2022-04-29 23:24:58
...

环境变量:

一般是指在操作系统中用来指定操作系统运行环境的一些参数

环境变量在系统当中通常具有全局特性

常见的环境变量:

PATH*:指定命令的搜索路径

HOME*:指定用户的主工作目录,即登录到linux时默认的目录

HISTSIZE*:指保存历史命令记录的条数

SHELL*:当前Shell,它的值通常是/bin/bash

环境变量相关命令:

env :查看全部的环境变量

echo $NAME:NAME为你想要查看的环境变量名

linux环境变量

set:显示本地定义的shell变量和环境变量

unset:清除环境变量

export:设置一个新的环境变量

环境变量的组织方式

每个程序都会配有一张环境表,环境表是字符指针数组,每个指针指向一个以‘\0’结尾的环境字符串

linux环境变量

这样我们就可以用一个字符型指针来获取环境变量

具体方法有:

1.命令行第三个参数

  1 #include<stdio.h>
  2 int main(int argc,char * argv[],char *env[])
  3 {
  4     int i=0;
  5     for(;env[i];i++)
  6     {
  7         printf("%s\n",env[i]);
  8 
  9     }
 10     return 0;          
 11 }   

2.通过第三方变量environ获取

由于environ是指向变量表的全局变量,我们要访问它所指向的内容,所以我们要用二级指针,此外extern来声明,表示environ变量定义在别的文件中

  1 #include<stdio.h>
  2 int main(int argc,char *argv[])
  3 {
  4     extern char **environ;
  5     int i=0;
  6     for(;environ[i];i++)                                                    
  7     {
  8         printf("%s\n",environ[i]);
  9     }
 10     return 0;
 11 }

通过系统调用来获取环境变量

调用getenv函数

  1 #include<stdio.h>
  2 #include<stdlib.h>
  3 int main()
  4 {
  5     printf("%s",getenv("PATH"));
  6     return 0;                                                               
  7 }

我们常用getenv和putenv来访问特定的环境变量

进程地址空间

进程的地址空间都是虚拟地址,OS负责将虚拟地址转化为物理地址