Partilhar via


_putenv_s, _wputenv_s

Criar, modificar ou remover, variáveis de ambiente.Essas são versões de _putenv, _wputenv mas têm aprimoramentos de segurança, como descrito em Recursos de segurança no CRT.

Observação importanteImportante

Este API não pode ser usado em aplicativos executados em Tempo de Execução do Windows.Para obter mais informações, consulte Funções de CRT não suportadas com /ZW.

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
    O nome da variável de ambiente.

  • value
    O valor para definir a variável de ambiente a.

Valor de retorno

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

Condições de erro

name

value

Valor de Retorno

NULL

alguns

EINVAL

alguns

NULL

EINVAL

Se uma das condições de erro ocorre, essas funções invocam um manipulador inválido de parâmetro, como descrito em Validação de parâmetro.Se a execução é permitida continuar, essas funções EINVAL de retorno e errno defina a EINVAL.

Comentários

A função de _putenv_s adicionar novos variáveis de ambiente ou modifica os valores de variáveis de ambiente existentes.Variáveis de ambiente definem o ambiente em que um processo é executado (por exemplo, o caminho de pesquisa padrão para que as bibliotecas sejam vinculadas com um programa)._wputenv_s é uma versão de largo- caractere de _putenv_s; o argumento de envstring a _wputenv_s é uma cadeia de caracteres de largo- caractere.

Mapeamentos da rotina de Genérico- texto

Rotina de TCHAR.H

_UNICODE & _MBCS não definidos

_MBCS definido

_UNICODE definido

_tputenv_s

_putenv_s

_putenv_s

_wputenv_s

name é o nome da variável de ambiente a ser adicionado ou alterado e value é o valor da variável.Se name já é parte de ambiente, seu valor é substituído por value; caso contrário, o novo variável de name e seu value são adicionados ao ambiente.Você pode remover uma variável de ambiente especificando uma cadeia de caracteres vazia (isto é, "") para value.

_putenv_s e _wputenv_s afetam somente o ambiente que é local para o processo atual; você não pode usá-las para alterar o ambiente de comando nível.Essas funções operam somente nas estruturas de dados que são acessíveis à biblioteca em tempo de execução e não no ambiente “segmento” o sistema operacional cria para um processo.Quando o processo atual finaliza, o ambiente reverte para o nível do processo de chamada, que é na maioria dos casos o nível do sistema operacional.No entanto, o ambiente alterado pode ser passado para todos os novos processos que são criados por _spawn, por _exec, ou por system, e esses novos processos obtém quaisquer novos itens que são adicionados por _putenv_s e por _wputenv_s.

Não altere uma entrada de ambiente diretamente; em vez disso, use _putenv_s ou _wputenv_s para mudá-lo.Em particular, diretamente liberar os elementos da matriz global de _environ[] pode causar memória inválida a ser abordada.

getenv e _putenv_s usam a variável global _environ para acessar a tabela de ambiente; _wgetenv e _wputenv_s usam _wenviron._putenv_s e _wputenv_s pode alterar o valor de _environ e de _wenviron, e assim invalidam o argumento de envp a main e o argumento de _wenvp a wmain.Como consequência, é mais seguro usar _environ ou _wenviron para acessar informações sobre o ambiente.Para obter mais informações sobre a relação de _putenv_s e de _wputenv_s a variáveis globais, consulte _environ, _wenviron.

ObservaçãoObservação

As famílias de _putenv_s e de _getenv_s de funções não são com segurança._getenv_s pode retornar um ponteiro de cadeia de caracteres quando _putenv_s altere a cadeia de caracteres, e assim falhas aleatórios causam.Certifique-se de que as chamadas a essas funções são sincronizados.

Requisitos

Rotina

Cabeçalho necessário

_putenv_s

<stdlib.h>

_wputenv_s

<stdlib.h> ou <wchar.h>

Para informações extras de compatibilidade, consulte Compatibilidade.

Exemplo

Para um exemplo que mostra como usar _putenv_s, consulte getenv_s, _wgetenv_s.

Equivalência do .NET Framework

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

Consulte também

Referência

Processo e controle do ambiente

GETENV, _wgetenv

_searchenv, _wsearchenv