linux下获取当前系统的环境变量

本文展示了如何在C++程序中获取系统环境变量,并通过实例代码演示了获取HOME变量的过程。此外,还提供了获取其他环境变量的示例。
#include<iostream>
#include<stdio.h>
#include<stdlib.h>

using namespace std;
extern char ** environ;


int main()
{
    char **var;
    for(var = environ;*var != NULL;var++)
        cout<<*var<<endl;

    char *home = getenv("HOME");//获取当前系统的HOME变量,若系统中当前无该系统变量,返回NULL
    cout<<"HOME="<<home<<endl;

    return 0;
}

  运行结果:

TOOLKIT_HOME=/usr/local/toolkit
RANK_HOME=/usr/local/rank
EMAILMONITOR_HOME=/usr/local/emailmonitor
NOVA_HOME=/usr/local/include/nova
HOSTNAME=sjs_131_236
DISTRIBUTION_HOME=/usr/local/distribution
TERM=linux
SHELL=/bin/bash
HISTSIZE=1000
BOOST_DATE_TIME_LIB=boost_date_time-gcc41-mt-d-1_34
BOOST_THREAD_LIB=boost_thread-gcc41-mt-d-1_34
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
SSH_CLIENT=10.129.148.245 35893 22
PROPHET_TEST_HOME=/usr/local/prophet_test
BRANDETL_HOME=/usr/local/brandetl
GALAXYGAME_HOME=/usr/local/galaxygame
FCGI_HOME=/usr/local/fcgi
SSH_TTY=/dev/pts/8
LC_ALL=zh_CN.gbk
PROPHET_FORECAST_XML=forecast_test.xml
USER=root
LD_LIBRARY_PATH=/usr/lib/oracle/10.2.0.4/client64/lib:
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:
CPATH=:
BOOST_HOME=/usr/local/include/boost-1_34
OCI_HEADERS_HOME=/usr/include/oracle/10.2.0.4/client64
WEBCAT_HOME=/usr/local/webcat
PROPHET_HOME=/usr/local/prophet
BRANDSTAT_HOME=/usr/local/brandstat
TNS_ADMIN=/usr/lib/oracle/10.2.0.4/network/admin
MAIL=/var/spool/mail/root
PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/
INPUTRC=/etc/inputrc
PWD=/opt/liuss/test
PROPHET_NATUREFORCE_XML=nature_test.xml
LANG=zh_CN.gbk
PS1=[\u@\H \W]\$ 
BOOST_REGEX_LIB=boost_regex-gcc41-mt-d-1_34
SHLVL=1
HOME=/root
KYOTOCABINET_HOME=/usr/local/include
BRANDREPORT_HOME=/usr/local/brandreport
PROPHET_TELEPORTATION_XML=telep_test.xml
LOGNAME=root
CVS_RSH=ssh
SSH_CONNECTION=10.129.148.245 35893 10.16.131.236 22
CMW_HOME=/usr/local/include/cmw
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/:/usr/lib64/pkgconfig/
LESSOPEN=|/usr/bin/lesspipe.sh %s
PROPHET_SPROUT_XML=sprout_test.xml
BFC_CFG=adonline_test
OCI_LIBS_HOME=/usr/lib/oracle/10.2.0.4/client64/lib
ORACLE_HOME=/usr/lib/oracle/10.2.0.4
HISTTIMEFORMAT=%Y-%m-%d %H:%M:%S 
G_BROKEN_FILENAMES=1
BFC_HOME=/usr/local/include/bfc
_=./getenv
OLDPWD=/opt/liuss
//getenv结果
HOME=/root

 改变环境变量用setenv函数,

 

 

一般情况下,可以在系统中export variable=value,然后再c++程序中获取该系统变量,若无则用一个默认值

转载于:https://www.cnblogs.com/buptlss/p/3544790.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值