_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.