为什么使用setenv()后未设置环境变量

我在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");

回答:

环境变量在程序的上下文中设置。

程序退出时,您将返回到程序启动所在的上下文。

以上是 为什么使用setenv()后未设置环境变量 的全部内容, 来源链接: utcz.com/qa/422481.html

回到顶部