_dupenv_s, _wdupenv_s
Geçerli ortamı bir değer alır.
Önemli |
---|
Bu API, Windows çalışma zamanı yürütme uygulamalarda kullanılamaz.Daha fazla bilgi için bkz: /zw ile desteklenmeyen crt işlevlerinin. |
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
Size of buffer.varname
Ortam değişkeni adı.
Dönüş Değeri
Başarı, hata durumunda bir hata kodu sıfır.
Bu işlevler, kendi parametrelerini doğrulamak; buffer veya varname olan NULL, açıklandığı gibi geçersiz bir parametre işleyici çağrılır Parametre doğrulama.Set işlevlerinden yürütülmesine devam etmek için izin verilirse, errno için EINVAL ve EINVAL.
Bu işlevler yeterli bellek ayrılamıyor, bunlar ayarlayın buffer için NULL ve numberOfElements 0, ve ENOMEM.
Notlar
_dupenv_s İşlev için ortam değişkenleri listesini arar varname.Değişkeni varsa, _dupenv_s bir arabellek ayırır ve değişken değerinin arabelleğine kopyalar.İçinde döndürülen arabellek adresi ve uzunluğu buffer ve numberOfElements.Kendisini, arabellek ayırma tarafından _dupenv_s için daha uygun bir alternatif sağlar getenv_s, _wgetenv_s.
[!NOT]
Çağıran program sorumluluk çağırarak belleği boşaltmak için ise free.
Değişken, sonra bulunmadığında, buffer ayarlamak NULL, numberOfElements 0 olarak ayarlanır ve bu durum bir hata koşulu olarak kabul edilir değil çünkü dönüş değeri 0'dır.
Arabellek boyutu ilgilenmiyorsanız geçirebilirsiniz NULL için numberOfElements.
_dupenv_sWindows işletim sistemi büyük/küçük harf duyarlı değildir._dupenv_siçin genel bir değişken tarafından işaret edilen ortam kopyasını kullanan _environ ortama erişmek için.Notlar getenv_s, _wgetenv_s bir tartışma için _environ.
Değer buffer bir kopyası ortam değişkeninin değeri; değiştirmeye ortam üzerinde hiçbir etkisi yoktur.Kullanım _putenv_s, _wputenv_s bir ortam değişkeninin değerini değiştirmek için işlev.
_wdupenv_sgeniş karakter sürümü _dupenv_s; bağımsız değişkenleri _wdupenv_s geniş karakter dizeleridir._wenviron Genel değişkeni bir geniş karakter sürümü olan _environ.Notlar getenv_s, _wgetenv_s ilgili daha fazla bilgi için _wenviron.
Genel metin eşlemeleri yordamına girildi
TCHAR.H yordamına girildi |
_UNICODE & _mbcs tanımlanmamış |
Tanımlanan _mbcs |
Tanımlanan _UNICODE |
---|---|---|---|
_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> |
Ek uyumluluk bilgileri için bkz: Uyumluluk giriş.
Ö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
}
Örnek Çıktı
pathext = .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.pl
nonexistentvariable = (null)
.NET Framework Eşdeğeri
System::Environment::GetEnvironmentVariable