在C中设置环境变量

mar*_*iel -2 c

我想在C程序中更改$ PATH.在此代码之后,当我打印PATH变量时,它保持不变.这是我的方法,

    char path[100]="PATH=";
    char *input = "/newfolder/hello/";
    putenv(strcat(path, input));
Run Code Online (Sandbox Code Playgroud)

我试图使用echo $ PATH将其打印出来,它仍然显示前一个路径,因为它没有改变.

Mik*_*kov 6

请在设置后告诉我获取环境变量的方式.我按照预期为我提供了以下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进程执行和评估,它仍然具有初始环境变量设置值.