函数getenv()总是返回null

时间:2013-04-12 10:37:55

标签: c

我的计划

int main(void){
printf("Log file location : %s\n", getenv("LOG_FILE"));
return 0;
}

始终打印为空。

但我已经在

中设置了env

/etc/nagios/.profile文件,其中我的用户是“nagios”,由导出LOG_FILE = / root / log

当我在终端执行“env”命令时,我也能看到相同的内容。

1 个答案:

答案 0 :(得分:4)

如果您忘记将getenv写入文件的标头,则函数#include <stdlib.h>会显示非常有趣的结果。

例如,代码:

#include <stdio.h>
#include <stdlib.h>

int main(void){
  printf("Log file location : %s\n", getenv("LOG_FILE"));
  return 0;
}

效果很好:

LOG_FILE="log" ./a.out 
Log file location : log

但是当我评论第二行时,我得到了:

LOG_FILE="log" ./a.out 
Segmentation fault (core dumped)