Aracılığıyla paylaş


GETENV, _wgetenv

Geçerli ortamı bir değer alır. Bu işlevlerin daha güvenli sürümlerinde kullanılabilir; see getenv_s, _wgetenv_s.

Ö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.

char *getenv( 
   const char *varname 
);
wchar_t *_wgetenv( 
   const wchar_t *varname 
);

Parametreler

  • varname
    Ortam değişkeni adı.

Dönüş Değeri

Ortam tabloyu içeren giriş işaretçi döndüren varname. Döndürülen işaretçi kullanarak ortam değişkeninin değerini değiştirmek güvenli değil. Kullanım _putenv bir ortam değişkeninin değerini değiştirmek için işlev. Dönüş değeri NULL , varname ortamı tablosunda bulunamadı.

Notlar

getenv İşlev için ortam değişkenleri listesini arar varname. getenvWindows işletim sistemi büyük/küçük harf duyarlı değildir. getenvve _putenv kullanmak için genel bir değişken tarafından işaret edilen ortamın kopyasını _environ ortama erişmek için. getenvyalnızca çalışma zamanı kitaplığı'na erişilebilir veri yapıları ve "işlem için işletim sistemi tarafından oluşturulan kesim" ortam üzerinde çalışır. Bu nedenle, kullanan programlar envp bağımsız değişkeni ana veya wmain geçersiz bilgiler alabilir.

varname Olan NULL, bir geçersiz parametre işleyicisi açıklandığı gibi bu işlevi çağırır Parametre doğrulama. Bu işlev yürütülmesine devam etmek için izin verilirse, ayarlar errno için EINVAL ve NULL.

_wgetenvgeniş karakter sürümü getenv; yazmaç değeri _wgetenv geniş karakter dizeleridir. _wenviron Genel değişkeni bir geniş karakter sürümü olan _environ.

mbcs programında (örneğin, bir programda sbcs ASCII), _wenviron başlangıçta olan NULL ortamı çok baytlı karakter dizeleri oluşur çünkü. Daha sonra ilk çağrı _wputenv, ya da ilk çağrı _wgetenv (mbcs) ortam zaten varsa, karşılık gelen bir geniş karakter dizeli ortam oluşturulur ve sonra tarafından gösterilir _wenviron.

Benzer şekilde, bir Unicode (_wmain) programı, _environ başlangıçta olan NULL ortamı geniş karakter dizeleri oluşur çünkü. Daha sonra ilk çağrı _putenv, ya da ilk çağrı getenv (Unicode) ortam zaten varsa, karşılık gelen bir mbcs ortamı oluşturulur ve sonra tarafından gösterilir _environ.

Bir programı aynı anda iki kopyası (mbcs ve Unicode) ortamı var, daha yavaş yürütme süresi içinde sonuçlanan her iki kopya, çalışma zamanı sistemi tutmalıdır. Örneğin, çağrılacak _putenv, çağrı _wputenv , böylece iki ortam dizeleri karşılık da otomatik olarak yürütülür.

Uyarı

Çalışma zamanı sistemi hem Unicode sürümü hem de ortam çok baytlı bir sürümünü korurken ender durumlarda, bu iki ortam sürümleri tam olarak karşılık gelmeyebilir.Bu, herhangi bir benzersiz çok baytlı karakter dizesi için benzersiz bir Unicode dize eşlemeleri de benzersiz bir Unicode dize eşleme çok baytlı karakter dizesi benzersiz olmak zorunda değildir çünkü.Daha fazla bilgi için bkz: _environ, _wenviron.

Not

_putenv Ve _getenv işlevlerinin aileleri iş parçacığı açısından güvenli değildir._getenvdize işaretçisi hata döndürmesine neden _putenv rasgele hatalarına neden dize değiştirme.Bu işlevlere olan çağrıları eşzamanlı olduğundan emin olun.

Genel metin eşlemeleri yordamına girildi

TCHAR.H yordamına girildi

_UNICODE & _mbcs tanımlanmamış

Tanımlanan _mbcs

Tanımlanan _UNICODE

_tgetenv

getenv

getenv

_wgetenv

Denetlemek veya değerini değiştirmek için TZ ortam değişkeni, kullanım getenv, _putenv ve _tzset gerekli. Hakkında daha fazla bilgi için TZ, bkz: _tzset ve _daylight, saat dilimi ve _tzname.

Gereksinimler

Yordamı

Gerekli başlık

getenv

<stdlib.h>

_wgetenv

<stdlib.h> veya <wchar.h>

Ek uyumluluk bilgileri için bkz: Uyumluluk giriş.

Örnek

// crt_getenv.c
// compile with: /W3
// This program uses getenv to retrieve
// the LIB environment variable and then uses
// _putenv to change it to a new value.
 
#include <stdlib.h>
#include <stdio.h>

int main( void )
{
   char *libvar;

   // Get the value of the LIB environment variable.
   libvar = getenv( "LIB" ); // C4996
   // Note: getenv is deprecated; consider using getenv_s instead

   if( libvar != NULL )
      printf( "Original LIB variable is: %s\n", libvar );

   // Attempt to change path. Note that this only affects the environment
   // variable of the current process. The command processor's
   // environment is not changed.
   _putenv( "LIB=c:\\mylib;c:\\yourlib" ); // C4996
   // Note: _putenv is deprecated; consider using putenv_s instead

   // Get new value.
   libvar = getenv( "LIB" ); // C4996

   if( libvar != NULL )
      printf( "New LIB variable is: %s\n", libvar );
}
  

.NET Framework Eşdeğeri

System::Environment::GetEnvironmentVariable

Ayrıca bkz.

Başvuru

İşlem ve ortam denetimi

_putenv, _wputenv

Çevresel sabitleri