Share via


_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

Consulte também

Referência

Processo e ambiente de controle

Constantes ambientais

_dupenv_s_dbg, _wdupenv_s_dbg

getenv_s, _wgetenv_s

_putenv_s, _wputenv_s