setenv() で新しい環境変数を設定しようとしています。
しかし、環境「extern char **environ」を使用する場合にのみ、 setenv() 関数が新しい環境変数を設定することに気付きました
しかし、 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);
}