我有一個C程序打印每個環境變量,其名稱由stdin給出。它打印變量如$ PATH,$ USER,但它沒有看到我在Linux shell中定義的環境變量......例如,在〜.bashrc中我導出了MYTEST = test_is_working,然後我找到了bashrc(source 〜/ .bashrc中)。 我希望程序能夠用getenv返回test_is_working,但它不會。使用getenv和env不會給出相同的結果:
#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
而當我打開一個終端,輸入「ENV」,我有MYTEST = test_is_working
我看到一個類似的帖子:Using getenv function 凡解決方案是從shell啓動程序。但我不能因爲我在Qtcreator中運行和調試。
我不知道我在哪裏錯了,有人可以向我解釋嗎?
感謝
如果從shell運行QtCreator會怎麼樣? – vahancho
請注意,您可以在Qt創建者中設置環境變量,在Run settings對話框中的某處。 – nos
所以是的,它工作,如果我從終端啓動qtcreator不知道爲什麼我沒有想到這一點,謝謝 – user2177446