我有一个 C 程序,可以打印名称由
stdin
给出的每个环境变量。
它打印诸如
$PATH
、$USER 之类的变量,但它看不到我在 Linux shell 中自己定义的环境变量。例如,在 ~/.bashrc
中,我导出了 MYTEST=test_is_working
,然后采购了 .bashrc
(source ~/.bashrc
)。
我希望程序会输出“test_is_working”并带有
getenv
,但事实并非如此。
#include <QCoreApplication>
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
char* my_env= getenv("MYTEST");
if(my_env!=NULL){
printf("my env is : %s \n", my_env);
}
else {
printf("can't find env \n");
}
return a.exec();
}
它输出:“找不到环境”。
当我打开终端并输入“env”时,我有 MYTEST=test_is_working
我看到了类似的帖子:使用 getenv 函数 解决方案是从 shell 启动程序。但我不能,因为我正在 Qtcreator 中运行和调试。
我不知道我哪里错了,有人可以给我解释一下吗?
谢谢。