修改环境变量

Linux下有两个函数用来查询和设置环境变量

char *getenv(const char *name);

int putenv(const char *string);

getenv用于查询指定的环境变量的值,成功则返回该值,否则返回null。

putenv以一个键值对的格式设置给定的环境变量的值

 1 #include <stdlib.h>
 2 #include <stdio.h>
 3 #include <string.h>
 4
 5 int main(int argc, char **argv)
 6 {
 7     char *var, *value;
 8
 9     if(argc == 1 || argc > 3)
10     {
11         fprintf(stderr, "usage:environ var [value]\n");
12         exit(-1);
13     }
14
15     var = argv[1];
16     value = getenv(var);
17     if(value)
18     {
19         printf("Variable %s has value %s\n", var, value);
20     }
21     else
22     {
23         printf("Variable %s has no value\n");
24     }
25
26     if(argc == 3)
27     {
28         char *string;
29         value = argv[2];
30         string = malloc(strlen(var) + strlen(value) + 2);
31         if(!string)
32         {
33             fprintf(stderr, "out of memory\n");
34             exit(1);
35         }
36         strcpy(string, var);
37         strcat(string, "=");
38         strcat(string, value);
39         printf("calling putenv with: %s\n", string);
40         if(putenv(string) != 0)
41         {
42             fprintf(stderr, "putenv failed\n");
43             free(string);
44             exit(1);
45         }
46
47         value = getenv(var);
48         if(value)
49         {
50             printf("New value of %s is %s\n", var, value);
51         }
52         else
53         {
54             printf("New value of %s is null??\n", var);
55         }
56
57         return 0;
58     }
59 }
时间: 2024-08-29 01:19:50

修改环境变量的相关文章

变量的声明及其作用域、脚本、修改环境变量$PATH【:VALUE】

变量的声明及其作用域 本地变量 VARNAME=VALUE:作用域为整个bash进程[打开新的shell进程,没有该变量] [root@jiakang a]# A=123 [root@jiakang a]# bash [root@jiakang a]# echo $A [root@jiakang a]# 局部变量 local VARNAME=VALUE:作用域为当前代码段 环境变量 作用域为当前shell及其子进程[打开一个shell就是一个进程] export VARNAME=VALUE或者

Ubuntu修改环境变量PATH方法

在LINUX安装一些软件通常要添加环境变量.环境变量通俗的讲就是把程序的路径"备案"到系统中,这样执行这些程序时就不需要输入完整路径,直接在bash输入程序名就可以执行.比如常用的ls命令就是添加好了环境变量才可以直接执行ls 环境变量的名字是PATH,$符号用于读取变量的值,终端输入echo $PATH返回如下,各路径用:隔开 echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/ga

Linux系统下修改环境变量PATH路径的三种方法

比如要把/etc/apache/bin目录添加到PATH中,方法有三: 1.#PATH=$PATH:/etc/apache/bin 使用这种方法,只对当前会话有效,也就是说每当登出或注销系统以后,PATH 设置就会失效 2.#vi /etc/profile 在适当位置添加 PATH=$PATH:/etc/apache/bin (注意:= 即等号两边不能有任何空格) 这种方法最好,除非你手动强制修改PATH的值,否则将不会被改变 3.#vi ~/.bash_profile 修改PATH行,把/et

HWND_BROADCAST的一个用法——修改环境变量,立即通知系统

在编程时遇到一个问题: 就是程序通过修改注册表,修改了系统的环境变量,但是不会立即生效,除非在[我的电脑]上点击右键,然后打开环境变量的窗口,点击[OK]后,才能生效.后来用Spy++工具捕获消息,发现在点击[OK]按钮时,发送了WM_SETTINGCHANGE消息. 在网上查找原因时发现,修改了注册表之后,系统需要重启,或者向上述操作,系统才能知道注册表被修改了,之后才能生效.如果想修改完环境变量后,立即生效,需要向系统发送消息: wstring szParam = _T( "Environm

windows 安装多个版本的jdk后修改 环境变量不起作用

本机已经安装了jdk1.6,而比较早期的项目需要依赖jdk1.5,于是同时在本机安装了jdk1.5和jdk1.6. 安装jdk1.5前,执行java -version得到java version "1.6.0_38"Java(TM) SE Runtime Environment (build 1.6.0_38-b05)Java HotSpot(TM) 64-Bit Server VM (build 20.13-b02, mixed mode) 安装完jdk1.5,并修改环境变量JAVA

win系统环境变量中增加或修改环境变量后快速生效

win系统环境变量中增加或修改环境变量后,需重启系统才能使之生效. 下面介绍一种方法: 以修改环境变量"PATH"为例,修改完成后,进入DOS命令提示符,输入:set PATH=C: ,关闭DOS窗口.再次打开DOS窗口,输入:echo %PATH% ,值已经生效. 不用担心DOS窗口中的修改会影响环境变量的值,DOS窗口中的环境变量只是Windows环境变量的一个副本而已.但是对副本的修改却会引发Windows环境变量的刷新,这正是我们想要的!

查看和修改环境变量PATH

echo $PATH  显示当前shell的环境变量,root用户,transfor等普通用户环境变量根据个人配置而不同.因 .bashrc 配置文件 没有设置环境变量的时候,运行命令:/usr/local/tomcat/bin/tomcat start 用export在/etc/profile中添加文件路径(对系统所有用户有效): #vim /etc/profile export PATH=/usr/local/tomcat/bin:$PATH 修改用户主目录中的隐藏文件.bashrc文件(只

InstallShield修改环境变量后不能立即生效的问题

创建一个InstallScript脚本的InstallShield安装程序,在脚本代码中更新环境变量,更新后发现注册表和计算机->属性->高级->环境变量中的变量值都更新了,但是使用命令行(WIN+R,CMD)始终获取不到设置的环境变量. 出现这个问题的原因是脚本代码中更新环境变量时没有给windows系统发送更新的通知事件.虽然网上有很多该问题的解决办法,但是我做了很多遍都不正确.最后在InstallShield自带的帮助文档中(搜索"Environment Variable

安装交叉编译工具arm-linux-gcc-4.3.2 并且修改环境变量

安装交叉编译工具arm-linux-gcc-4.3.2 2011-07-08 00:55:28|  分类: 嵌入式|举报|字号 订阅 环境:Fedora 9 STEP 1: 下载arm-linux-gcc-4.3.2.tgz. 把arm-linux-gcc-4.3.2.tgz随便放在一个目录,我放在了/opt.下载网站1:http://www.arm123.com.cn/linux/arm-linux-gcc-4.3.2.tgz             下载网站2:http://www.arm9

批处理,修改环境变量path的方法(加环境变量)

方法一:批处理中,修改环境变量,一次性有效(也就是在当前的脚本中有效) CMD中运行 set path==%path%;d:/mypath 用 set path可以查看,当前的环境变量 方法二 :批处理中,修改环境变量,永久有效 ::更改path环境变量值,新增e:\toolswmic ENVIRONMENT where "name='path' and username='<system>'" set VariableValue="%path%;e:\tools