_dupenv_s_dbg
, _wdupenv_s_dbg
Geçerli ortamdan bir değer alın. _wdupenv_s
_dupenv_s
daha fazla hata ayıklama bilgisi sağlamak için ile _malloc_dbg
bellek ayıran sürümleri.
Sözdizimi
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şkenin değerini depolamak için arabellek.
numberOfElements
boyutu buffer
.
varname
Ortam değişkeni adı.
blockType
İstenen bellek bloğu türü: _CLIENT_BLOCK
veya _NORMAL_BLOCK
.
filename
Kaynak dosyanın veya NULL
adının işaretçisi.
lineNumber
Kaynak dosyadaki veya NULL
içindeki satır numarası.
Dönüş değeri
Başarıda sıfır, hatada hata kodu.
Bu işlevler parametrelerini doğrular; veya buffer
varname
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 NULL
buffer
ve döndürürENOMEM
.
Açıklamalar
_dupenv_s_dbg
ve _wdupenv_s_dbg
işlevleri ile aynıdır _dupenv_s
ve _wdupenv_s
ancak tanımlandığında_DEBUG
, bu işlevler ortam değişkeninin malloc
değeri için bellek ayırmak için , _malloc_dbg
, hata ayıklama sürümünü kullanır. hata ayıklama özellikleri _malloc_dbg
hakkında bilgi için bkz _malloc_dbg
. .
Çoğu durumda bu işlevleri açıkça çağırmanız gerekmez. Bunun yerine bayrağını _CRTDBG_MAP_ALLOC
tanımlayabilirsiniz. Tanımlandığında, ve _wdupenv_s
çağrıları _dupenv_s
sırasıyla blockType
ve _wdupenv_s_dbg
ile yeniden eşlenir _dupenv_s_dbg
ve olarak ayarlanır_NORMAL_BLOCK
._CRTDBG_MAP_ALLOC
Bu nedenle, yığın bloklarını olarak _CLIENT_BLOCK
işaretlemek istemediğiniz sürece bu işlevleri açıkça çağırmanız gerekmez. Blok türleri hakkında daha fazla bilgi için bkz . Hata ayıklama yığınındaki blok türleri.
Genel metin yordamı eşlemeleri
TCHAR.H yordamı | _UNICODE ve _MBCS tanımlanmadı |
_MBCS tanımlanan |
_UNICODE tanımlanan |
---|---|---|---|
_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> |
Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.
Ö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
}
pathext = .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.pl
nonexistentvariable = (null)
Ayrıca bkz.
İşlem ve ortam denetimi
Ortam sabitleri
getenv_s
, _wgetenv_s
_putenv_s
, _wputenv_s