我想在C程序中更改$ PATH.在此代码之后,当我打印PATH变量时,它保持不变.这是我的方法,
char path[100]="PATH=";
char *input = "/newfolder/hello/";
putenv(strcat(path, input));
Run Code Online (Sandbox Code Playgroud)
我试图使用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;
}
Run Code Online (Sandbox Code Playgroud)
输出是: /newfolder/hello/
我试图使用echo $ PATH将其打印出来,它仍然显示前一个路径,因为它没有改变.
你在你的程序中使用的是:
system("echo $PATH");
Run Code Online (Sandbox Code Playgroud)
然后你就不会得到你设置的值,因为这个命令将从shell进程执行和评估,它仍然具有初始环境变量设置值.