C语言获取系统环境变量

    技术2022-05-19  27

    C语言获取系统环境变量可以通过如下代码实现.

     

    <code> #include <stdio.h> #include <unistd.h> char *platform() { //获取系统变量信息 char *ret; extern char **environ; char **env = environ; //打印系统变量信息 /* while(*env) { //puts(*env); env++; } */ ret = getenv("OS"); //for windows_nt if(NULL != ret) { printf("%s /n", ret); return ret; } else { ret = getenv("TERM"); //for linux printf("%s /n", ret); return ret; } } </code>

    其中变量environ是一个外部双指针变量,以获取当前系统环境变量值。environ存储系统环境变量,程序启动后会复制 系统环境变量到environ ,定义在unistd.h 中s

    在windows平台上程序运行的结果如下所示:

     

    在linux平台上运行的结果如下所示:

    HOSTNAME=localhost.localdomainTERM=linuxSHELL=/bin/bashCATALINA_HOME=/usr/local/tomcat/jakarta-tomcat-5.0.28HISTSIZE=1000JRE_HOME=/usr/java/jdk1.5.0_06/jreUSER=rootLS_COLORS=no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*.cmd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:KDEDIR=/usrMAIL=/var/spool/mail/rootPATH=/usr/java/jdk1.5.0_06/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/usr/java/jdk1.5.0_06:/usr/java/jdk1.5.0_06/bin:/root/binINPUTRC=/etc/inputrcPWD=/rootJAVA_HOME=/usr/java/jdk1.5.0_06LANG=en_US.UTF-8SHLVL=1HOME=/rootLOGNAME=rootCVS_RSH=sshCLASSPATH=/usr/java/jdk1.5.0_06/lib/tools.jarLESSOPEN=|/usr/bin/lesspipe.sh %sBASEDIR=/usr/local/tomcat/jakarta-tomcat-5.0.28G_BROKEN_FILENAMES=1_=./get_env

     

    通过如下一些函数可以对当前系统变量进行操作:

    Function:  char  * getenv ( const   char  *name)    //获取系统变量值  

    Function: int setenv (const char *name, const char *value, int replace)   //设置系统变量值

    Function: int unsetenv (const char *name)   //重置系统变量值


    最新回复(0)