Aracılığıyla paylaş


_dupenv_s, _wdupenv_s

Geçerli ortamdan bir değer alır.

Önemli

Bu API, Windows Çalışma Zamanı yürütülen uygulamalarda kullanılamaz. Daha fazla bilgi için bkz. Evrensel Windows Platformu uygulamalarında desteklenmeyen CRT işlevleri.

Sözdizimi

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
);

Parametreler

buffer
Değişkenin değerini depolamak için arabellek.

numberOfElements
boyutu buffer.

varname
Ortam değişkeni adı.

Dönüş değeri

Başarıda sıfır, hatada hata kodu.

Bu işlevler parametrelerini doğrular; veya buffervarname iseNULL, parametre doğrulamasında açıklandığı gibi geçersiz parametre işleyicisi çağrılır. Yürütmenin devam etmesi için izin verilirse, işlevleri olarak EINVAL ayarlanır errno ve döndürürEINVAL.

Bu işlevler yeterli bellek ayıramıyorsa, ve numberOfElements değerini 0 olarak ayarlar NULLbuffer ve döndürürENOMEM.

Açıklamalar

işlevi, _dupenv_s ortam değişkenleri listesinde öğesini arar varname. Değişken bulunursa, _dupenv_s bir arabellek ayırır ve değişkenin değerini arabelleğe kopyalar. Arabelleğin adresi ve uzunluğu ve numberOfElementsiçinde buffer döndürülür. Arabelleğin kendisini ayırdığından, _dupenv_s için _wgetenv_sgetenv_sdaha uygun bir alternatif sağlar.

Dekont

çağırarak belleği boşaltmak çağıran freeprogramın sorumluluğundadır.

Değişken bulunamazsa, buffer olarak ayarlanırNULLnumberOfElements, 0 olarak ayarlanır ve bu durum bir hata koşulu olarak kabul edilmediğinden dönüş değeri 0'dır.

Arabelleğin boyutuyla ilgilenmiyorsanız, için numberOfElementsgeçirebilirsinizNULL.

_dupenv_s , Windows işletim sisteminde büyük/küçük harfe duyarlı değildir. _dupenv_s ortama erişmek için genel değişkenin _environ işaret ettiği ortamın kopyasını kullanır. tartışması için içindeki getenv_s_wgetenv_sAçıklamalar'a _environbakın.

içindeki buffer değeri ortam değişkeninin değerinin bir kopyasıdır; değiştirildiğinde ortam üzerinde hiçbir etkisi olmaz. Bir ortam değişkeninin _putenv_sdeğerini değiştirmek için , _wputenv_s işlevini kullanın.

_wdupenv_s , öğesinin _dupenv_sgeniş karakterli bir sürümüdür; bağımsız değişkenleri _wdupenv_s geniş karakterli dizelerdir. Genel _wenviron değişken, geniş karakterli bir sürümüdür _environ. hakkında daha fazla bilgi için içindeki Açıklamalar'a getenv_s_wgetenv_s_wenvironbakın.

Varsayılan olarak, bu işlevin genel durumunun kapsamı uygulama olarak belirlenmiştir. Bu davranışı değiştirmek için bkz. CRT'de Genel durum.

Genel metin yordamı eşlemeleri

TCHAR.H Rutin _UNICODE ve _MBCS tanımlanmadı _MBCS Tanımlanan _UNICODE Tanımlanan
_tdupenv_s _dupenv_s _dupenv_s _wdupenv_s

Gereksinimler

Yordam Gerekli başlık
_dupenv_s <stdlib.h>
_wdupenv_s <stdlib.h> veya <wchar.h>

Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.

Örnek

// 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
}
pathext = .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.pl
nonexistentvariable = (null)

Ayrıca bkz.

İşlem ve ortam denetimi
Ortam sabitleri
_dupenv_s_dbg, _wdupenv_s_dbg
getenv_s, _wgetenv_s
_putenv_s, _wputenv_s