我在 Linux 中写了一个 C 程序来使用 setenv
设置环境变量的值,但是执行后,当我运行 set
或 export
,环境变量本身似乎未设置。为什么?
这是代码片段:
int main()
{
char *mallocPtr, *callocPtr, *reallocPtr, *memalignPtr, *vallocPtr;
struct sigaction sa;
sa.sa_handler=SIGSEGV_handler;
sigaction(SIGSEGV, &sa, NULL);
if(setenv("ENV1", "3", 1) == 0)
printf("ENV1 set to 3\n");
else
fprintf(stderr, "setenv failed on ENV1");
最佳答案
环境变量是在您的程序上下文中设置的。
当您的程序退出时,您将回到程序启动时的上下文。
关于c - 为什么在使用 setenv( ) 后环境变量未设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6981033/