linux系统环境变量
linux系统:多用户多任务(并行)的开源操作系统.
- 环境变量
1>环境变量:指定操作系统运行环境的参数.
2>本质:字符串(NULL结尾)
3>格式: 名称=值1:值2
4>环境变量表 (extern char ** environ) 命令行:env也可查看.
#include<stdio.h>
extern char** environ;
/*******************************************************
*输出当前进程的所有环境变量
********************************************************/
int main()
{
for(int i=0;environ[i];i++)
{
//环境变量本质是字符串
printf("%s\n",environ[i]);
}
return 0;
}
- 常见的环境变量
1>PATH:可执行程序的搜索路径;
2>LD_LIBRARY_PATH:指定查找共享库(动态链接库)时除了默认路径之外的其他路径;
3>SHELL:当前shell,通常指//bin/bash
4>LANG:语言和编码模式
5>HOME:当前用户组目录
… - 环境变量的3个函数
1>getenv()
2>setenv()
3>unsetenv()
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
/*******************************************************
*函数:getenv()
*头文件:#include<stdlib.h>
*格式:char *getenv(const char *name);//const char *name-const xxx的为传入参数-键值;char*传出参数.
*作用:获取对应键的值.
*返回值: 成功-返回对应key的值;错误-返回NULL;
********************************************************/
char* name="khy";
char *ret=getenv(name);//没有khy环境变量,返回NULL
printf("1. %s=%s\n",name,ret);
/*******************************************************
*函数:setenv()
*头文件:#include<stdlib.h>
*格式:int setenv(const char *name, const char *value, int overwrite);//const char *name-const xxx的为传入参数-键值;char*传出参数. overwrite为0不覆盖,overwrite为1,覆盖原来的值.
*作用:设置对应键的值.
*返回值: 成功-0;失败--1;
********************************************************/
int num=setenv(name,"very good",1); //设置
ret=getenv(name);
printf("2. %s=%s\n",name,ret);
/*******************************************************
*函数:unsetenv()
*头文件:#include<stdlib.h>
*格式: int unsetenv(const char *name);
*作用:删除名称为name的环境变量.
*返回值: 成功-0;失败--1;//不存在也会返回成功;unsetenv("name=")会返回-1因为=号;
********************************************************/
int num1=unsetenv(name);
ret=getenv(name);
printf("3. %s=%s\n",name,ret);
return 0;
}
运行结果: