zoukankan      html  css  js  c++  java
  • [置顶] getenv、setenv函数(获取和设置系统环境变量) 与 环境变量

    1、getenv()

    函数名: getenv
    功 能: 从环境中取字符串,获取环境变量的值
    头文件: stdlib.h
    用 法:char *getenv(char *envvar);
    函数说明:getenv()用来取得参数envvar环境变量的内容。参数envvar为环境变量的名称,如果该变量存在则会返回指向该内容的指针。环境变量的格式为envvar=value。getenv函数的返回值存储在一个全局二维数组里,当你再次使用getenv函数时不用担心会覆盖上次的调用结果。
    返回值: 执行成功则返回指向该内容的指针,找不到符合的环境变量名称则返回NULL。如果变量存在但无关联值,它将运行成功并返回一个空字符串,即该字符的第一个字节是null。
    相关函数:_wgetenv、getenv_s、_wgetenv_s

    2、putenv

          首先要说明的是,通过此函数并不能添加或修改 shell 进程的环境变量,或者说通过setenv函数设置的环境变量只在本进程,而且是本次执行中有效。如果在某一次运行程序时执行了setenv函数,进程终止后再次运行该程序,上次的设置是无效的,上次设置的环境变量是不能读到的。
         putenv(改变或增加环境变量)
      相关函数 getenv,setenv,unsetenv
      表头文件 #include<stdlib.h>
      定义函数 int putenv(const char * string);
      函数说明:putenv()用来改变或增加环境变量的内容。参数string的格式为name=value,如果该环境变量原先存在,则变量内容会依参数string改变,否则此参数内容会成为新的环境变量。
      返回值:执行成功则返回0,有错误发生则返回-1。
      错误代码:ENOMEM 内存不足,无法配置新的环境变量空间。

    --------------------------------------------------------------------------------------------------------


    使用export设置环境变量 

    export命令

    功能: 设置或显示环境变量

    语法: export [-fnp] [变量名称]=[变量值]

    说明: 在shell中执行程序时,shell会提供一组环境变量。export可新增,修改或删除环境变量,供后续执行的程序使用。export的效力仅及于该此登陆操作。


    参数: 
    -f   此时变量名称为函数名称。
    -n   删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。
    -p   列出所有的环境变量。

    举例:

    export PRJROOT=/home/eriol/newproject
    export PREFIX=${PRJROOT}/tools
    export PATH=${PATH}:${PREFIX}/bin

    Linux系统环境变量中,路径名用冒号分隔。

    注意:export设置只对当前的bash登录session有效,它是存在内存里面的


    如果想要环境变量永久生效可以修改下面两个文件中的任何一个

    1 /etc/profile 

    2 .bash_profile

    其中,/etc/profile是全局的环境变量,对所有用户生效,而.bash_profile只对当前用户启作用。


    设置完毕,注销并重新登录,设置就生效了。
    注意:export设置只对当前的bash登录session有效。这是存在内存里面的。
  • 相关阅读:
    Apache Tomcat的安装与配置
    2007年东软校园招聘笔试题(山东大学)
    成功修复U盘,狂喜中~哈哈哈!!!
    检测和修复U盘的一般过程(一、软检测篇)
    在 hp3172宽屏笔记本上安装windowsXP+solaris10 双系统(1)--环境准备篇
    递归法查找假硬币
    把ppt转换为word的一段脚本
    2007年11月神州数码软件工程师(网络公司)招聘笔试题目
    不能正常使用oracle的解决办法(Oracle10g Express 版)
    光驱弹不出来怎么办?光驱弹不出来的简易解决办法。
  • 原文地址:https://www.cnblogs.com/alan666/p/8311793.html
Copyright © 2011-2022 走看看