Linux中与环境变量相关的函数
1、在终端可以通过env、set命令查看当前的环境变量
2、通过main函数中的第三个参数可以得到当前进程的环境变量列表
int main(int argc , char *argv[] , char *env[]);
其中argv和env是一个指针数组,数组的最后一个元素为NULL
3、打印当前进程的环境变量
int main(int argc , char *argv[] , char *env[]){
char **p = env;
while(*p){
printf("%s\n",*env);
env++;
}
}
4、getenv获得指定的环境变量
char * getenv("环境变量名")
int main(){
char * p = getenv("PATH");
if(p){
printf("%s",p);
}
else{
return;
}
}
5、putenv设置环境变量
int main(int argc , char ** argv , char **env){
printf("%s\n",getenv("PATH"));
putenv("PATH=/home/hello");
printf("%s\n",getenv("PATH"));
}
输出结果:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
/home/hello
6、setenv设置环境变量
首先要说明的是,通过此函数并不能添加或修改 shell 进程的环境变量,或者说通过setenv函数设置的环境变量只在本进程,而且是本次执行中有效。如果在某一次运行程序时执行了setenv函数,进程终止后再次运行该程序,上次的设置是无效的,上次设置的环境变量是不能读到的
setenv("变量名","新变量值","是否重写")
int main(int argc , char ** argv , char **env){
printf("%s\n",getenv("PATH"));
int res = setenv("PATH","/home/hello",); //第三个参数为1代表重写
if(res == -)
return;
printf("%s\n",getenv("PATH"));
}
输出结果:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
/home/hello
若第三个参数为0,即环境变量已经存在,则并不改变它的值
输出结果:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
7、unsetenv删除某个环境变量
unsetenv("环境变量名")
int main(int argc , char ** argv , char **env){
printf("%s\n",getenv("PATH"));
unsetenv("PATH");
printf("%s\n",getenv("PATH"));
}
输出结果:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PATH被删除,所以只输出一行
Linux中与环境变量相关的函数的更多相关文章
- Linux中PATH环境变量的作用和使用方法
关于PATH的作用:PATH说简单点就是一个字符串变量,当输入命令的时候LINUX会去查找PATH里面记录的路径.比如在根目录/下可以输入命令ls,在/usr目录下也可以输入ls,但其实ls这个命令根 ...
- Linux有问必答:如何在Linux中修改环境变量PATH
提问: 当我试着运行一个程序时,它提示“command not found”. 但这个程序就在/usr/local/bin下.我该如何添加/usr/local/bin到我的PATH变量下,这样我就可以 ...
- Linux中的环境变量PATH
一.介绍 在讲环境变量之前,先介绍一下命令which,它用于查找某个命令的绝对路径,示例如下: 在上面的示例中,用which查到rm命令的绝对路径为/usr/bin/rm. 那么问题来了:为什么我们使 ...
- Linux中修改环境变量
<1>Linux 的变量作用范围可分为两类:环境变量和本地变量 环境变量,或者称为全局变量,存在与所有的shell 中,在你登陆系统的时候就已经有了相应的系统定义的环境变量了.Linux ...
- Linux中配置环境变量
Linux中环境变量的搭建(推荐用法) 第一步:进入到/etc/profile.d文件夹下 cd /etc/profile.d 第二步:创建并编辑一个my_env.sh文件 vim my_env.sh ...
- linux中的环境变量
linux中用到很多的环境变量的设置,这里推荐一个博客: http://www.cnblogs.com/mengyan/archive/2012/09/04/2669894.html
- 在linux中配置环境变量
JDK下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 根据Linux ...
- Linux中修改环境变量导致大量命令不可用的解决办法
如果搞死环境变量别慌张.因为ls等命令都不能使用了,所以先找到/usr/bin/目录 使用./sudo su命令获取root权限 然后在进入/etc目录 利用vim profile命令 修改profi ...
- Linux中JDK环境变量的配置
在JDK安装好以后,需要进行环境变量的配置 配置目录 /etc/profile 在这个文件的末尾追加 JAVA_HOME=/home/j2sdk1.4.2_11PATH=$PATH:/home/j ...
随机推荐
- rbenv安装ruby2.3.0在线安装不上。老子出绝招了(更新)
今天把系统换成Linux mint了.感觉比ubuntu的好用太多,细节真是不错,Ubuntu感觉就是毛坯房,Linux mint真是精装修啊 问题来了.安装rbenv后,然后安装rbenv-buil ...
- 20145305 《Java程序设计》第3周学习总结
教材学习内容总结 1."一类一文件" 2.参考名称与对象数据成员同名时,可以在数据成员前使用this区别 3.不能用==直接比较浮点数运算结果 4.=是用在指定参考名称参考某个对象 ...
- springmvc对请求执行流程
doService-->getHandlerMapping-->handlerMapping-->getHandler-->HandlerExecutionChain--> ...
- Codeforces 631C
题意:给定n和m. 给定一个长度为n的序列,m次操作. 接下来m次操作,每行第一个数若为1,则增序排列,若为2则降序排列,第二个数是排列的范围,即从第一个数排序到第某个数. 思路: 首先,对于其中范围 ...
- [HDU 4821] String (字符串哈希)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4821 题目大意:给你M,L两个字母,问你给定字串里不含M个长度为L的两两相同的子串有多少个? 哈希+枚 ...
- Network of Schools(强连通分量缩点(邻接表&矩阵))
Description A number of schools are connected to a computer network. Agreements have been developed ...
- SQLServer 索引以及视图
业务 主键: 索引: 锁: ========================================= 一个页分为 页头 页体--存储行 页尾 页是有固定大小的,但是数据不一定存满,有可能产生 ...
- 通过反射获取父类中的泛型参数对应的Class对象
假设有两个类:Dao 和 PersonDao,它们的代码如下: Dao: public class Dao<T> { private Class<T> clazz; T get ...
- JavaScript对象的创建之基于构造方法+原型方式
为了解决原型所带来的问题,此处需要通过组合构造方法和原型来实现对象的创建,将属性在构造方法中定义,将方法在原型中定义.这种有效集合了两者的优点,是目前最为常用的一种方式. function Perso ...
- 前端测试框架 jasmine 的使用
最近的项目在使用AngulaJs,对JS代码的测试问题就摆在了面前.通过对比我们选择了 Karma + jasmine ,使用 Jasmine做单元测试 ,Karma 自动化完成,当然了如果使用 K ...