我的计划
int main(void){
printf("Log file location : %s\n", getenv("LOG_FILE"));
return 0;
}
始终打印为空。
但我已经在
中设置了env/etc/nagios/.profile文件,其中我的用户是“nagios”,由导出LOG_FILE = / root / log
当我在终端执行“env”命令时,我也能看到相同的内容。
答案 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)