_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