_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.
Importante |
---|
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çã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.