Share via


_putenv_s, _wputenv_s

Criar, modificar ou remover variáveis de ambiente.Essas são sistema autônomo versões de _putenv, _wputenv com aprimoramentos de segurança conforme descrito em Aprimoramentos de segurança no CRT.

errno_t _putenv_s(
   const char *name,
   const char *value 
);
errno_t _wputenv_s(
   const wchar_t *name,
   const wchar_t *value
);

Parâmetros

  • name
    Nome da variável de ambiente.

  • value
    Valor para conjunto a variável de ambiente.

Valor de retorno

Retorna 0 se obtiver êxito, ou um código de erro.

Condições de erro

name

value

Valor de Retorno

NULL

any

EINVAL

any

NULL

EINVAL

Se ocorrer uma das condições de erro, essas funções invocará um manipulador de parâmetro inválido, conforme descrito em Validação de parâmetro. Se a execução for permitida para continuar, essas funções retornam EINVAL e conjunto errno para EINVAL.

Comentários

The _putenv_s função adiciona novas variáveis de ambiente ou modifica os valores de variáveis de ambiente existente. As variáveis de ambiente definem o ambiente no qual um processo é executado (por exemplo, o caminho de Pesquisar padrão para bibliotecas para serem vinculadas com um programa)._wputenv_s é uma versão de caractere largo da _putenv_s; o envstring argumento para _wputenv_s é uma seqüência de caracteres largos.

Mapeamentos de rotina de texto genérica

Rotina TCHAR.H

_UNICODE & _MBCS não definido

_MBCS definido

_UNICODE definido

_tputenv_s

_putenv_s

_putenv_s

_wputenv_s

name é o nome da variável de ambiente sejam adicionados ou modificados e value é o valor da variável. If name já é parte do ambiente, seu valor é substituído por value; Caso contrário, o novo name variável e seu value são adicionados ao ambiente. Você pode remover uma variável de ambiente especificando uma seqüência de caracteres vazia (ou seja, "") paravalue.

_putenv_s e _wputenv_s afetar o ambiente local para o processo corrente; você não pode usá-los para modificar o ambiente de nível de comando. Ou seja, essas funções operam apenas em estruturas de dados acessíveis para a biblioteca de time de execução e não no ambiente de "segmento" criado para um processo pelo sistema operacional.Quando o processo corrente é encerrado, o ambiente é revertido para o nível de processo de chamada (na maioria dos casos, o nível de sistema operacional).No entanto, o ambiente modificado pode ser passado para novos processos criados por _spawn, _exec, ou system, e os itens novos adicionados por esses novos processos _putenv_s e _wputenv_s.

Não alterar diretamente uma entrada de ambiente: em vez disso, use _putenv_s ou _wputenv_s para alterá-lo. Em particular, liberando direta elementos do _environ[] matriz global pode levar a memória sendo resolvida.

getenv e _putenv_s Use a variável global _environ para acesso tabela ambiente; _wgetenv e _wputenv_s Use _wenviron. _putenv_s e _wputenv_s pode alterar o valor da _environ e _wenviron, invalidando assim o envp argumento para main e o _wenvp argumento para wmain. Portanto, é mais seguro usar _environ ou _wenviron para acessar as informações de ambiente. Para obter mais informações sobre a relação entre _putenv_s e _wputenv_s variáveis global, consulte _environ, _wenviron.

Observação:

O _putenv_s e _getenv_s famílias de funções não são thread-safe. _getenv_s pode retornar um ponteiro de seqüência de caracteres ao mesmo tempo _putenv_s é modificar a seqüência de caracteres, causando falhas aleatórias. Certifique-se de que as chamadas para essas funções estão sincronizadas.

Requisitos

Rotina

Cabeçalho necessário

_putenv_s

<stdlib.h>

_wputenv_s

<stdlib.h> ou <wchar.h>

Para obter informações adicionais compatibilidade, consulte Compatibilidade na introdução.

Exemplo

Para obter um exemplo de como usar _putenv_s, consulte getenv_s, _wgetenv_s.

Equivalente do NET Framework

Não aplicável. Para telefonar a função C padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma.

Consulte também

Referência

Processo e ambiente de controle

GETENV, _wgetenv

_searchenv, _wsearchenv