Section: Manual del Programador de Linux (3)
Updated: 5 marzo 1998
Index Return to Main
Contents
putenv - cambia o añade una variable de ambiente
#include <stdlib.h> int putenv(const char *cadena);
La función putenv() añade 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 añade al entorno. Si nombre sí 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.
La función putenv() devuelve cero si acaba bien, ó -1 en caso de error.
No es necesario que la función putenv() sea reentrante, y la de libc4, libc5 y glibc2.0 no lo es, pero la versión de glibc2.1 sí.
Descripción para libc4, libc5, glibc: si el argumento cadena es de la forma name, y no contiene el carácter `=', entonces la variable name se elimina del entorno. Si putenv() tiene que reservar un nuevo array environ, y el array previo también fue reservado por putenv(), entonces será liberado. En ningún caso se liberará 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 después modificará el entorno. Sin embargo, glibc 2.0-2.1.1 difieren: se usa una copia de la cadena. Por un lado, esto provoca una pérdida de memoria y, por otro lado, viola SUSv2. Esto se ha solucionado en glibc2.1.2.
La versión de BSD4.4, como la de glibc 2.0, usa una copia.
SUSv2 elimina `const' del prototipo, y así lo hace glibc 2.2.
(3), setenv(3), unsetenv(3), environ(5)
This document was created by man2html, using
the manual pages.
Time: 06:16:23 GMT, January 22, 2005