Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The getenv function searches the list of environment variables for varname. getenv is not case sensitive in the Windows operating system. getenv and _putenv use the copy of the environment pointed to by the global variable _environ to access the environment. getenv operates only on the data structures accessible to the run-time library and not on the environment "segment" created for the process by the operating system. Therefore, programs that use the envp argument to main or wmain may retrieve invalid information.

When compiled with gcc-GCC version 3.4.6 and run on Andrew Linux-2.6.16.29a 32-bit Intel GNU/Linux test machine, the following code:

Code Block
extern char **environ;

/* ... */

int main(int argc, char const *argv[], char const *envp[]) {
   printf("environ:  %p\n", environ);
   printf("envp:     %p\n", envp);
   setenv("MY_NEW_VAR", "new_value", 1);
   puts("--Added MY_NEW_VAR--");
   printf("environ:  %p\n", environ);
   printf("envp:     %p\n", envp);
}

...