_dupenv_s, _wdupenv_s
Obter um valor de ambiente atual.
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 _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
Tamanho de buffer.varname
Nome da variável de ambiente.
Valor de retorno
Zero em êxito, um código de erro em caso de falha.
Essas funções validam seus parâmetros; se buffer ou varname são NULL, o manipulador inválido do parâmetro é chamado como descrito em Validação de parâmetro.Se a execução é permitida continuar, errno definir funções a EINVAL e a EINVALde retorno.
Se essas funções não podem atribuir memória suficiente, definem buffer a NULL e a numberOfElements a 0, e o retorno ENOMEM.
Comentários
A função de _dupenv_s procura a lista de variáveis de ambiente por varname.Se a variável for encontrado, _dupenv_s atribui um buffer e copia o valor da variável no buffer.O endereço e o tamanho do buffer são retornados em buffer e em numberOfElements.Atribuindo o buffer próprio, _dupenv_s fornece uma alternativa mais conveniente a getenv_s, _wgetenv_s.
Observação |
---|
É responsabilidade do programa de chamada liberar memória chamando livre. |
Se a variável não for encontrado, então buffer é definido como NULL, numberOfElements é definido como 0, e o valor de retorno é 0 porque essa situação não é considerada como uma condição de erro.
se você não estiver interessado no tamanho do buffer você pode passar NULL para numberOfElements.
_dupenv_s não diferencia maiúsculas de minúsculas no sistema operacional Windows._dupenv_s usa a cópia de ambiente apontado pela variável global _environ para acessar o ambiente.Consulte os comentários em getenv_s, _wgetenv_s para uma discussão sobre _environ.
O valor em buffer é uma cópia do valor da variável de ambiente; modifique não tem efeito sobre o ambiente.Use a função de _putenv_s, _wputenv_s para alterar o valor de uma variável de ambiente.
_wdupenv_s é uma versão de largo- caractere de _dupenv_s; os argumentos de _wdupenv_s são cadeias de caracteres de largo- caractere.A variável global de _wenviron é uma versão de largo- caractere de _environ.Consulte os comentários em getenv_s, _wgetenv_s para mais _wenvironem.
Mapeamentos da rotina de Genérico- texto
Rotina de TCHAR.H |
_UNICODE & _MBCS não definidos |
_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 informações extras de compatibilidade Compatibilidade na introdução, consulte.
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
}
A saída de exemplo
pathext = .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.pl
nonexistentvariable = (null)
Equivalência do .NET Framework
System::Environment::GetEnvironmentVariable