C语言获取系统环境变量

来源:互联网 发布:还原软件哪个好 编辑:程序博客网 时间:2024/05/22 02:25

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

#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_ntif(NULL != ret){printf("%s /n", ret);return ret;}else{ret = getenv("TERM"); //for linuxprintf("%s /n", ret);return ret;}}


 

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

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

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

HOSTNAME=localhost.localdomain
TERM=linux
SHELL=/bin/bash
CATALINA_HOME=/usr/local/tomcat/jakarta-tomcat-5.0.28
HISTSIZE=1000
JRE_HOME=/usr/java/jdk1.5.0_06/jre
USER=root
LS_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=/usr
MAIL=/var/spool/mail/root
PATH=/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/bin
INPUTRC=/etc/inputrc
PWD=/root
JAVA_HOME=/usr/java/jdk1.5.0_06
LANG=en_US.UTF-8
SHLVL=1
HOME=/root
LOGNAME=root
CVS_RSH=ssh
CLASSPATH=/usr/java/jdk1.5.0_06/lib/tools.jar
LESSOPEN=|/usr/bin/lesspipe.sh %s
BASEDIR=/usr/local/tomcat/jakarta-tomcat-5.0.28
G_BROKEN_FILENAMES=1
_=./get_env

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

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

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

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

 

 

可以通过如下程序,取出所有环境变量

extern char ** environ ; int   main ( int argc , char * argv [] ) {     char ** env = environ ;     while   ( * env )     {         printf ( " %s \n " , * env ) ;         env ++;     }     exit ( 0 ) ; }