_dupenv_s_dbg, _wdupenv_s_dbg

Geçerli Ortamı'ndan bir değer alır. Sürümleri _dupenv_s, _wdupenv_s ile bellek ayırma _malloc_dbg ek hata ayıklama bilgileri sağlamak için.

errno_t _dupenv_s_dbg(
   char **buffer,
   size_t *numberOfElements,
   const char *varname,
   int blockType,
   const char *filename,
   int linenumber
);
errno_t _wdupenv_s_dbg(
   wchar_t **buffer,
   size_t * numberOfElements,
   const wchar_t *varname,
   int blockType,
   const char *filename,
   int linenumber
);

Parametreler

  • buffer
    Değişken değerini depolayan arabellek.

  • numberOfElements
    buffer arabelleğinin boyutu.

  • varname
    Ortam değişken adı.

  • blockType
    İstenen bellek bloğu türü: _CLIENT_BLOCK veya _NORMAL_BLOCK.

  • filename
    İşaretçi kaynak dosyanın adını veya NULL.

  • linenumber
    Satır numarası kaynak dosyadaki veya NULL.

Dönüş Değeri

Başarılıysa sıfır; hata halinde bir hata kodu.

Bu işlevler, parametrelerini doğrular; buffer veya varname, NULL ise, geçersiz parametre işleyici, Parametre Doğrulama'da açıklandığı gibi çağrılır.Yürütmenin devam etmesine izin verilirse işlevler errno öğesini EINVAL olarak ayarlar ve EINVAL döndürür.

Bu işlevler yeterli bellek ayıramıyorsa, bufferNULL, numberOfElements ise 0 olarak ayarlanır ve bunlar ENOMEM döndürür.

Notlar

_dupenv_s_dbg Ve _wdupenv_s_dbg aynı işlevleri _dupenv_s ve _wdupenv_s dışında ne zaman _DEBUG olan tanımlı, bu işlevleri hata ayıklama sürümünü kullanma malloc, _malloc_dbg, ortam değişkeninin değeri için bellek ayrılamıyor.Hata ayıklama özellikleri hakkında bilgi için _malloc_dbg, bkz: _malloc_dbg.

Çoğu durumda bu işlevleri açıkça çağırmak gerekmez.Bayrak tanımlamak yerine, _CRTDBG_MAP_ALLOC.Zaman _CRTDBG_MAP_ALLOC tanımlanır, çağrılar _dupenv_s ve _wdupenv_s için eşleştirilir _dupenv_s_dbg ve _wdupenv_s_dbg, sırasıyla ile blockType ayarlamak _NORMAL_BLOCK.Bu nedenle, yığın taşları olarak işaretlemek istediğiniz sürece bu işlevleri açıkça çağırmak gerekmez _CLIENT_BLOCK.Blok türleri hakkında daha fazla bilgi için bkz: hata ayıklama öbek üzerindeki blokları türleri.

Genel Metin Yordam Eşleşmeleri

TCHAR.H yordamı

_UNICODE & _MBCS tanımlanmamış

_MBCS tanımlanmış

_UNICODE tanımlanmış

_tdupenv_s_dbg

_dupenv_s_dbg

_dupenv_s_dbg

_wdupenv_s_dbg

Gereksinimler

Yordam

Gerekli başlık

_dupenv_s_dbg

<crtdbg.h>

_wdupenv_s_dbg

<crtdbg.h>

Ek uyumluluk bilgileri için Giriş altındaki Uyumluluk bölümüne bakın.

Örnek

// crt_dupenv_s_dbg.c
#include  <stdlib.h>
#include <crtdbg.h>

int main( void )
{
   char *pValue;
   size_t len;
   errno_t err = _dupenv_s_dbg( &pValue, &len, "pathext",
      _NORMAL_BLOCK, __FILE__, __LINE__ );
   if ( err ) return -1;
   printf( "pathext = %s\n", pValue );
   free( pValue );
   err = _dupenv_s_dbg( &pValue, &len, "nonexistentvariable",
      _NORMAL_BLOCK, __FILE__, __LINE__ );
   if ( err ) return -1;
   printf( "nonexistentvariable = %s\n", pValue );
   free( pValue ); // It's OK to call free with NULL
}

Örnek Çıktı

pathext = .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.pl
nonexistentvariable = (null)

.NET Framework Eşdeğeri

System::Environment::GetEnvironmentVariable

Ayrıca bkz.

Başvuru

Süreç ve Ortam Denetimi

Ortam Sabitleri

getenv_s, _wgetenv_s

_putenv_s, _wputenv_s