_dupenv_s, _wdupenv_s
Obter um valor do ambiente corrente.
errno_t _dupenv_s(
char **buffer,
size_t *numberOfElements,
const char *varname
);
errno_t _wdupenv_s(
wchar_t **buffer,
size_t *numberOfElements,
const wchar_t *varname
);
Parâmetros
buffer
Buffer para armazenar o valor da variável.numberOfElements
dimensionar de buffer.varname
Nome da variável de ambiente.
Valor de retorno
Zero em caso de sucesso, um código de erro em caso de falha.
Essas funções para validar seus parâmetros; se buffer ou varname é NULL, o manipulador de parâmetro inválido é chamado sistema autônomo descrito em Validação de parâmetro. Se a execução for permitida para continuar, as funções conjunto errno para EINVAL e retornar EINVAL.
Se essas funções não é possível alocar memória suficiente, eles conjunto buffer para NULL e numberOfElements como 0 e retornar ENOMEM.
Comentários
The _dupenv_s função na lista de variáveis de ambiente para pesquisa varname. Se a variável for encontrada, um buffer é alocado, o valor da variável é copiado para o buffer e endereço e o comprimento do buffer são retornados em buffer e numberOfElements. Alocando o buffer, _dupenv_s Fornece uma alternativa mais conveniente para getenv_s, _wgetenv_s.
Observação: |
---|
É responsabilidade do programa de chamada para liberar a memória, chamando disponível. |
Se a variável não for encontrado, então buffer é conjunto para NULL, numberOfElements é conjunto como 0, e o valor retornado é 0 porque essa situação não é considerada como uma condição de erro.
Se você não estiver interessado no dimensionar do buffer é possível passar NULL para numberOfElements.
_dupenv_s não diferencia maiúsculas e minúsculas no sistema operacional Windows. _dupenv_s usa a cópia do ambiente apontada pela variável global _environ para acessar o ambiente. Consulte comentários em getenv_s, _wgetenv_s Para obter informações sobre _environ.
O valor em buffer é uma cópia do valor da variável de ambiente; modificá-lo não tem efeito sobre o ambiente. Use o _putenv_s, _wputenv_s função para modificar o valor de uma variável de ambiente.
_wdupenv_s é uma versão de caractere largo da _dupenv_s; os argumentos do _wdupenv_s são seqüências de caracteres largos. The _wenviron variável global é uma versão de caractere largo da _environ. Consulte comentários em getenv_s, _wgetenv_s Para obter mais informações sobre _wenviron.
Mapeamentos de rotina de texto genérica
Rotina TCHAR.H |
_UNICODE & _MBCS não definido |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_tdupenv_s |
_dupenv_s |
_dupenv_s |
_wdupenv_s |
Requisitos
Rotina |
Cabeçalho necessário |
---|---|
_dupenv_s |
<stdlib.h> |
_wdupenv_s |
<stdlib.h> ou <wchar.h> |
Para obter informações adicionais compatibilidade, consulte Compatibilidade na introdução.
Exemplo
// crt_dupenv_s.c
#include <stdlib.h>
int main( void )
{
char *pValue;
size_t len;
errno_t err = _dupenv_s( &pValue, &len, "pathext" );
if ( err ) return -1;
printf( "pathext = %s\n", pValue );
free( pValue );
err = _dupenv_s( &pValue, &len, "nonexistentvariable" );
if ( err ) return -1;
printf( "nonexistentvariable = %s\n", pValue );
free( pValue ); // It's OK to call free with NULL
}
Saída de exemplo
pathext = .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.pl
nonexistentvariable = (null)
Equivalente do NET Framework
sistema::ambiente::GetEnvironmentVariable