Originální popis anglicky: 
putenv - change or add a value to an environment
Návod, kniha: POSIX Programmer's Manual
#include <stdlib.h>
 
 
int putenv(char * 
string);  
 
The 
putenv() function shall use the 
string argument to set
  environment variable values. The 
string argument should point to a
  string of the form " 
name= 
value ". The
  
putenv() function shall make 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 shall become
  part of the environment, so altering the string shall change the environment.
  The space used by 
string is no longer used once a new string which
  defines 
name is passed to 
putenv().
The 
putenv() function need not be reentrant. A function that is not
  required to be reentrant is not required to be thread-safe.
Upon successful completion, 
putenv() shall return 0; otherwise, it shall
  return a non-zero value and set 
errno to indicate the error.
The 
putenv() function may fail if:
  - ENOMEM
- Insufficient memory was available.
      
The following sections are informative.
The following example changes the value of the 
HOME environment variable
  to the value 
/usr/home.
 
#include <stdlib.h>
...
static char *var = "HOME=/usr/home";
int ret;
 
ret = putenv(var);
 
The 
putenv() function manipulates the environment pointed to by
  
environ, and can be used in conjunction with 
getenv().
See 
exec() , for restrictions on changing the environment in
  multi-threaded applications.
This routine may use 
malloc() to enlarge the environment.
A potential error is to call 
putenv() with an automatic variable as the
  argument, then return from the calling function while 
string is still
  part of the environment.
The 
setenv() function is preferred over this function.
The standard developers noted that 
putenv() is the only function
  available to add to the environment without permitting memory leaks.
None.
exec() , 
getenv() , 
malloc() , 
setenv() , the Base
  Definitions volume of IEEE Std 1003.1-2001,
  
<stdlib.h>
Portions of this text are reprinted and reproduced in electronic form from IEEE
  Std 1003.1, 2003 Edition, Standard for Information Technology -- Portable
  Operating System Interface (POSIX), The Open Group Base Specifications Issue
  6, Copyright (C) 2001-2003 by the Institute of Electrical and Electronics
  Engineers, Inc and The Open Group. In the event of any discrepancy between
  this version and the original IEEE and The Open Group Standard, the original
  IEEE and The Open Group Standard is the referee document. The original
  Standard can be obtained online at http://www.opengroup.org/unix/online.html
  .