_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 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
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 numberOfElements
içinde buffer
döndürülür. Arabelleğin kendisini ayırdığından, _dupenv_s
için _wgetenv_s
getenv_s
daha uygun bir alternatif sağlar.
Not
çağırarak belleği boşaltmak çağıran free
programın sorumluluğundadır.
Değişken bulunamazsa, buffer
olarak ayarlanırNULL
numberOfElements
, 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 numberOfElements
geç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_s
Açıklamalar'a _environ
bakı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_s
değerini değiştirmek için , _wputenv_s
işlevini kullanın.
_wdupenv_s
, öğesinin _dupenv_s
geniş 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
_wenviron
bakı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 olağan |
_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