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

标签 c linux

我在 Linux 中写了一个 C 程序来使用 setenv 设置环境变量的值,但是执行后,当我运行 setexport,环境变量本身似乎未设置。为什么?

这是代码片段:

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/

相关文章:

C 错误 - 在 Eclipse IDE 中未定义对 pow 的引用 - 可以在 'main' 函数中使用它,但不能在其他函数中使用。我正在使用 "-lm"编译器标志

c - 在 C 中的 scanf() 中使用 "\n"

c++ - 在 CentOS 6 x64 上构建的应用程序的 32 位版本在较新的 Linux 上启动时会在 `dl_iterate_phdr` 异常期间崩溃

php - session.save_path (/tmp) 的值对于 Web 服务器来说是不可写的。确保PHP确实可以保存 session 变量

linux - 如何使用 while read line 将文件名打印到文本文件的每一行

linux - 在 Bash 的文件路径参数中获取最后一个目录名/文件名

c - 海湾合作委员会错误 : expected expression before 'else'

c - 如何在 C 中打印引号?

c++ - 该递归函数如何工作?

c - libm 的用途是什么?