1、设置环境变量
vi ~/.bash_profile
增加export SYSDEV_ID=100022、source ~/.bash_profile使之生效
[tclient@testdb1 ~]$ echo $SYSDEV_ID
100023、linux C程序中使用如下语句获取环境变量:
char *penv = NULL;
penv = getenv("SYSDEV_ID");
if(penv != NULL)
g_config.sysdev_id = atoi(penv);
output(LOG, "%d", g_config.sysdev_id);//打印日志
...程序运行后,日志打印结果是0,应该是10002才对啊。为啥呢?请各位帮忙分析一下,谢谢!
注:
1)先改环境变量,后启动程序;
2)gdb调试时打印结果是10002,但是直接运行程序,打印出来就是0
vi ~/.bash_profile
增加export SYSDEV_ID=100022、source ~/.bash_profile使之生效
[tclient@testdb1 ~]$ echo $SYSDEV_ID
100023、linux C程序中使用如下语句获取环境变量:
char *penv = NULL;
penv = getenv("SYSDEV_ID");
if(penv != NULL)
g_config.sysdev_id = atoi(penv);
output(LOG, "%d", g_config.sysdev_id);//打印日志
...程序运行后,日志打印结果是0,应该是10002才对啊。为啥呢?请各位帮忙分析一下,谢谢!
注:
1)先改环境变量,后启动程序;
2)gdb调试时打印结果是10002,但是直接运行程序,打印出来就是0
系统版本:
[root@transfor ~]# uname -a
Linux transfor 2.6.32-279.el6.x86_64 #1 SMP Wed Jun 13 18:24:36 EDT 2012 x86_64 x86_64 x86_64 GNU/Linux我也觉得很奇怪,换一台服务器直接运行是正确的输出。
况且这台服务器上GDB的话输出也正确,但是直接运行就0了
你可以试试获取其他环境变量, 如果都返回NULL,就是我说的这种情况