我想在C程序中更改我的$ PATH。在此代碼之後,當我打印我的PATH變量時,它保持不變。這裏是我的方法,在C中設置環境變量
char path[100]="PATH=";
char *input = "/newfolder/hello/";
putenv(strcat(path, input));
我想將其打印出來回用echo $ PATH,它仍然顯示了前路,因爲它不會改變。
我想在C程序中更改我的$ PATH。在此代碼之後,當我打印我的PATH變量時,它保持不變。這裏是我的方法,在C中設置環境變量
char path[100]="PATH=";
char *input = "/newfolder/hello/";
putenv(strcat(path, input));
我想將其打印出來回用echo $ PATH,它仍然顯示了前路,因爲它不會改變。
請在設置完成後向我顯示獲取環境變量的方式。 我有下面的C代碼,我按預期工作:
#include <stdio.h>
#include <stdlib.h>
int main()
{
char path[100]="PATH=";
char *input = "/newfolder/hello/";
putenv(strcat(path, input));
char* pPath;
pPath = getenv("PATH");
printf("%s", pPath);
return 0;
}
輸出是:/newfolder/hello/
我想將其打印出來回用echo $ PATH,它仍然顯示了前路徑,因爲它沒有改變。
是你在你的程序是這樣使用:
system("echo $PATH");
然後,你不會得到你已經設置的值,因爲該命令將被執行,從中仍然有你的shell進程評估初始環境變量設定值。
您不能在同一個進程中使用'echo $ PATH'。你到底在說什麼? – EJP 2013-02-25 02:00:26