setenv - change or add an environment variable
#include <stdlib.h>
int setenv(const char *name, const char *value, int overwrite);
int unsetenv(const char *name);
Feature Test Macro Requirements for glibc (see feature_test_macros(7)):
The setenv() function adds the variable name
to the environment with the value value
, if name
does not already exist. If name
does exist in the environment, then its value is changed to value
if overwrite
is nonzero; if overwrite
is zero, then the value of name
is not changed (and setenv() returns a success status). This function makes copies of the strings pointed to by name
and value
(by contrast with putenv(3)).
The unsetenv() function deletes the variable name
from the environment. If name
does not exist in the environment, then the function succeeds, and the environment is unchanged.
name
is NULL, points to a string of length 0, or contains an '=' character.
Insufficient memory to add a new variable to the environment.
For an explanation of the terms used in this section, see attributes(7).
Interface | Attribute | Value |
setenv(), unsetenv() | Thread safety | MT-Unsafe const:env |
POSIX.1-2001, POSIX.1-2008, 4.3BSD.
POSIX.1 specifies that if name
contains an '=' character, then setenv() should fail with the error EINVAL; however, versions of glibc before 2.3.4 allowed an '=' sign in name
.
This page is part of release 4.15 of the Linux man-pages
project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at https://www.kernel.org/doc/man-pages/.