我想在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