PUTENV(3C)              Standard C Library Functions              PUTENV(3C)
NAME
       putenv - change or add value to environment
SYNOPSIS
       #include <stdlib.h>       
int putenv(
char *string);
DESCRIPTION
       The 
putenv() function makes the value of the environment variable       
name equal to 
value by altering an existing variable or creating a
       new one. In either case, the string pointed to by 
string becomes part
       of the environment, so altering the string will change the
       environment.
       The 
string argument points to a string of the form 
name=value. The
       space used by 
string is no longer used once a new string-defining       
name is passed to 
putenv(). If there is no equals sign (
=) present as
       a separator, then 
string is treated as the 
name of an environment
       variable to remove from the environment, as though 
unsetenv(3C) had
       been called.
       The 
putenv() function uses 
malloc(3C) to enlarge the environment.
       After 
putenv() is called, environment variables are not in
       alphabetical order.
RETURN VALUES
       Upon successful completion, 
putenv() returns 0. Otherwise, it returns
       a non-zero value and sets 
errno to indicate the error.
ERRORS
       The 
putenv() function may fail if:       
ENOMEM                 Insufficient memory was available.
USAGE
       The 
putenv() function can be safely called from multithreaded
       programs.  Caution must be exercised when using this function and       
getenv(3C) in multithreaded programs. These functions examine and
       modify the environment list, which is shared by all threads in a
       program.  The system prevents the list from being accessed
       simultaneously by two different threads.  It does not, however,
       prevent two threads from successively accessing the environment list
       using 
putenv() or 
getenv().
ATTRIBUTES
       See 
attributes(7) for descriptions of the following attributes:
       +--------------------+-----------------+
       |  ATTRIBUTE TYPE    | ATTRIBUTE VALUE |
       +--------------------+-----------------+
       |Interface Stability | Standard        |
       +--------------------+-----------------+
       |MT-Level            | Safe            |
       +--------------------+-----------------+
SEE ALSO
       exec(2), 
getenv(3C), 
malloc(3C), 
attributes(7), 
environ(7),       
standards(7)WARNINGS
       The 
string argument should not be an automatic variable.  It should
       be declared static if it is declared within a function because it
       cannot be automatically declared. A potential error is to call       
putenv() with a pointer to an automatic variable as the argument and
       to then exit the calling function while 
string is still part of the
       environment.
                                June 22, 2016                     PUTENV(3C)