Provided by: manpages-es_1.55-10_all bug

NOMBRE

       putenv - cambia o anade una variable de ambiente

SINOPSIS

       #include <stdlib.h>

       int putenv(char *cadena);

DESCRIPCI'ON

       La  funcion  putenv() anade o cambia el valor de variables de entorno o
       ambiente. El argumento cadena es de la forma nombre=valor.   Si  nombre
       no  existe  ya  en el ambiente, entonces cadena se anade al entorno. Si
       nombre si existe, entonces el valor de nombre en el ambiente se  cambia
       a  valor.   La  cadena  apuntada  por  cadena se convierte en parte del
       entorno, por lo que cambiar la cadena modifica el entorno.

VALOR DEVUELTO

       La funcion putenv() devuelve cero si acaba bien, o -1 en caso de error.

ERRORES

       ENOMEM Espacio insuficiente para alojar el nuevo ambiente.

NOTA

       No es necesario que la funcion putenv() sea reentrante, y la de  libc4,
       libc5 y glibc2.0 no lo es, pero la version de glibc2.1 si.

       Descripcion  para  libc4, libc5, glibc: si el argumento cadena es de la
       forma name, y no contiene el caracter `=', entonces la variable name se
       elimina  del  entorno.   Si  putenv() tiene que reservar un nuevo array
       environ, y el array previo tambien fue reservado por putenv(), entonces
       sera  liberado.  En  ningun caso se liberara el anterior almacenamiento
       asociado a la propia variable de entorno.

       Las versiones de libc4 y libc5 siguen SUSv2: se usa el  puntero  cadena
       dado  a  putenv(). En particular, esta cadena se convierte en parte del
       entorno. El cambiarla despues modificara el entorno.  (De esta  manera,
       es  un  error  llamar  a  putenv()  pasando como argumento una variable
       automatica, y despues volver de la funcion invocadora  mientras  cadena
       forma  todavia  parte  del  entorno.)   Sin  embargo,  glibc  2.0-2.1.1
       difieren: se usa una copia de la cadena.  Por un lado, esto provoca una
       perdida  de  memoria  y,  por  otro  lado,  viola  SUSv2.  Esto  se  ha
       solucionado en glibc2.1.2.

       La version de BSD4.4, como la de glibc 2.0, usa una copia.

       SUSv2 elimina `const' del prototipo, y asi lo hace glibc 2.1.3.

CONFORME A

       SVID 3, POSIX, BSD 4.3

V'EASE TAMBI'EN

       getenv(3), setenv(3), clearenv(3), unsetenv(3), environ(7)