PUTENV(3)

NOME
putenv - altera ou adiciona um variável de ambiente

SINÓPSE
#include <stdlib.h>

int putenv(char *string);

DESCRIÇÃO
A função putenv() altera ou adiciona o valor da variável de ambiente. O argumento string está na forma name=value. Se name ainda não existir no ambiente, então string é adicionada ao ambiente. Se name não existe, então o valor de name no ambiente é alterado para value. A seqüencia indicada por string torna-se parte do ambiente, alterando, então, as mudanças de 'string' no ambiente.

VALORES RETORNADOS
A função putenv() returna zero em caso de sucesso, ou -1 caso contrário.

ERROS

ENOMEM
    Espaço insuficiente para alocar o novo ambiente.

NOTAS
A função putenv() não precisará ser reentrante, aquela em libc4, libc5 e glibc2.0 não é, mas a versão glibc2.1 é.

Descrição para libc4, libc5, glibc: Se o argumento string está na formato name, e não comtém um caractere `=', então a variável name é removida do ambiente. Se putenv() tem que alocar uma nova matriz environ, e a matriz anterior também foi alocada por putenv(), então este será liberado. No nenhum caso será a armazenagem anterior associada com a variável de ambiente liberada.

A libc4 e libc5 e versões glibc 2.1.2 de acordo com SUSv2: o indicador string dado à putenv() é utilizado. Em particular, esta 'string', torna-se parte do ambiente; mudando-a posteriormente, o ambiente será alterado. (Portanto, é um erro chamar putenv() com uma variável de ambiente automática como argumento, portanto, o retorno da função de chamada enquanto Istring ainda é parte do ambiente.) Entretanto, glibc 2.0-2.1.1 difere: uma cópia da 'string' é utilizada. Se por um lado, isto causa um vazamento de memória, do outro ela viola SUSv2. Isto foi consertado na glibc 2.1.2.

A versão BSD 4.4, como glibc 2.0, utiliza uma cópia.

SUSv2 remove a `const' do tipo primitivo, assim como a glibc 2.1.3.

DE ACORDO COM
SVID 3, POSIX, BSD 4.3.

VEJA TANBÉM
getenv(3), setenv(3), unsetenv(3), environ(5).

TRADUZIDO POR LPD-BR em 18/06/2001.

  Tradução:
Ricardo C.O.Freitas <english.quest@best-service.com>

  Revisão.:
André Luiz Fassone <lonely_wolf@ig.com.br>