【发布时间】:2026-01-09 04:55:01
【问题描述】:
我正在尝试使用 setenv() 设置一个新的环境变量。
但我注意到 setenv() 函数只有在我使用环境“extern char **environ”时才会设置我的新环境变量
但我想使用 main() 的参数:“char **envp”。
这是我尝试在 envp 中设置的代码,但正如您将看到的,如果您运行该代码,它不会在 envp 中设置。
但如果我使用 const char **environ 就可以了。
有什么想法吗?
#include <stdlib.h>
#include <stdio.h>
int main(int ac, char **av, char **envp)
{
int i;
i = 0;
setenv("NEW_ENV_VAR", "hello_world", 0);
while (envp[i])
printf("%s\n", envp[i++]);
return (0);
}
【问题讨论】: