C 我可以使用envp设置env()吗?
我正在尝试使用setenv()设置一个新的环境变量 但我注意到setenv()函数仅在使用环境“extern char**environ”时才设置新的环境变量 但是我想使用main()的参数:“char**envp” 下面是我尝试在envp中设置的代码,但您将看到,如果运行该代码,它将不会在envp中设置 但是如果我使用const char**environ,它会工作 有什么想法吗C 我可以使用envp设置env()吗?,c,env,setenv,C,Env,Setenv,我正在尝试使用setenv()设置一个新的环境变量 但我注意到setenv()函数仅在使用环境“extern char**environ”时才设置新的环境变量 但是我想使用main()的参数:“char**envp” 下面是我尝试在envp中设置的代码,但您将看到,如果运行该代码,它将不会在envp中设置 但是如果我使用const char**environ,它会工作 有什么想法吗 #include <stdlib.h> #include <stdio.h> int
#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);
}
#包括
#包括
内部主(内部ac、字符**av、字符**envp)
{
int i;
i=0;
setenv(“新环境变量”,“你好世界”,0);
while(envp[i])
printf(“%s\n”,envp[i++]);
返回(0);
}
()被记录为不允许将可选的envp
参数更改为main
如果需要遍历所有环境变量,请使用extern char**environ
另请参见。因此,如果要使用envp,我必须重新编码setenv(),对吗?否。envp
是main
中的局部变量,外部函数根本无法修改它。使用外部字符**环境代码>。或者如果您坚持使用envp
变量,只需编写envp=environ代码>在main
调用setenv
之后的某个地方。