_dupenv_s_dbg _wdupenv_s_dbg
Získáte hodnotu z aktuálního prostředí.Verze _dupenv_s _wdupenv_s , přidělení paměti s _malloc_dbg poskytnout další informace o ladění.
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
);
Parametry
buffer
Vyrovnávací paměť k ukládání hodnot proměnné.numberOfElements
Size of buffer.varname
Název proměnné prostředí.blockType
Typ bloku paměti požadované: _CLIENT_BLOCK nebo _NORMAL_BLOCK.filename
Ukazatel myši na název zdrojového souboru nebo NULL.linenumber
Číslo zdrojového souboru nebo NULL.
Vrácená hodnota
Nula na úspěch, kód chyby při selhání.
Tyto funkce ověřit jejich parametry; Pokud buffer nebo varname je NULL, parametr neplatný popisovač je vyvoláno popsaným v Ověření parametrů.Pokud je povoleno spuštění pokračovat, nastavte funkce errno na EINVAL a vrátit se EINVAL.
Pokud tyto funkce nelze přidělit dostatek paměti, je nastavit buffer na NULL a numberOfElements 0 a návrat ENOMEM.
Poznámky
_dupenv_s_dbg a _wdupenv_s_dbg funkce jsou shodné s _dupenv_s a _wdupenv_s s výjimkou, kdy _DEBUG je definován, tyto funkce použít ladicí verzi MALLOC, _malloc_dbg, přidělení paměti pro hodnotu proměnné prostředí.Informace o ladění funkce _malloc_dbg, viz _malloc_dbg.
Není nutné explicitně volat tyto funkce ve většině případů.Místo toho můžete definovat příznak _CRTDBG_MAP_ALLOC.Při _CRTDBG_MAP_ALLOC je definován, volání do _dupenv_s a _wdupenv_s budou přemapovány na _dupenv_s_dbg a _wdupenv_s_dbg, resp. s blockType nastavena na _NORMAL_BLOCK.Tedy není nutné explicitně volat tyto funkce, pokud chcete označit bloky haldy jako _CLIENT_BLOCK.Další informace o blokování typů viz Typy bloky na ladění haldy.
Obecný Text rutinní mapování
TCHAR.Rutina H |
_UNICODE & _MBCS není definován |
_MBCS, definice |
_UNICODE, definice |
---|---|---|---|
_tdupenv_s_dbg |
_dupenv_s_dbg |
_dupenv_s_dbg |
_wdupenv_s_dbg |
Požadavky
Rutina |
Požadované záhlaví |
---|---|
_dupenv_s_dbg |
<crtdbg.h> |
_wdupenv_s_dbg |
<crtdbg.h> |
Další informace o kompatibilitě, viz Compatibility v úvodu.
Příklad
// 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
}
Vzorový výstup
pathext = .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.pl
nonexistentvariable = (null)
Ekvivalent v rozhraní .NET Framework
System::Environment::GetEnvironmentVariable