Partilhar via


_dupenv_s, _wdupenv_s

Obter um valor de ambiente atual.

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 _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çãoObservaçã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

Consulte também

Referência

Processo e controle do ambiente

Constantes ambientais

_dupenv_s_dbg, _wdupenv_s_dbg

getenv_s, _wgetenv_s

_putenv_s, _wputenv_s