Aracılığıyla paylaş


_putenv_s, _wputenv_s, _tputenv_s

Ortam değişkenlerini oluşturur, değiştirir veya kaldırır. Bu işlevler, CRT'deki Güvenlik özellikleri bölümünde açıklandığı gibi güvenlik geliştirmeleri içeren sürümleridir_wputenv_putenv.

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

için _tputenv_sbkz . Genel metin yordamı eşlemeleri.

Sözdizimi

errno_t _putenv_s(
   const char *varname,
   const char *value_string
);
errno_t _wputenv_s(
   const wchar_t *varname,
   const wchar_t *value_string
);

Parametreler

varname
Ortam değişkeni adı.

value_string
Ortam değişkeninin ayarlanacağı değer.

Dönüş değeri

Başarılı olursa 0 veya bir hata kodu döndürür.

Hata koşulları

varname value_string Dönüş değeri
NULL herhangi bir EINVAL
herhangi bir NULL EINVAL

Hata koşullarından biri oluşursa, bu işlevler Parametre doğrulama bölümünde açıklandığı gibi geçersiz bir parametre işleyicisi çağırır. Yürütmenin devam etmesi için izin verilirse, bu işlevler döndürülerek EINVAL olarak EINVALayarlanırerrno.

Açıklamalar

_putenv_s işlevi yeni ortam değişkenleri ekler veya mevcut ortam değişkenlerinin değerlerini değiştirir. Ortam değişkenleri, bir işlemin yürütüldiği ortamı tanımlar (örneğin, bir programla ilişkilendirilecek kitaplıklar için varsayılan arama yolu). _wputenv_s , öğesinin _putenv_sgeniş karakterli bir sürümüdür; envstring bağımsız değişkeni _wputenv_s geniş karakterli bir dizedir.

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

Sütundaki tchar.h işlev, derleme zamanında tanımlanan karakter kümesine bağlı olarak diğer sütunlardaki işlevle eşler.

tchar.h işlevi _UNICODE ve _MBCS tanımlanmadı _MBCS tanımlanan _UNICODE tanımlanan
_tputenv_s _putenv_s _putenv_s _wputenv_s

varname eklenecek veya değiştirilecek ortam değişkeninin adıdır ve value_string değişkenin değeridir. Zaten ortamın bir parçasıysa varname , değeri ile value_stringdeğiştirilir; aksi takdirde, yeni varname değişken ve ortamına value_string eklenir. için value_stringboş bir dize (başka bir ifadeyle"") belirterek bir değişkeni ortamdan kaldırabilirsiniz.

_putenv_s ve _wputenv_s yalnızca geçerli işlemde yerel olan ortamı etkiler; bunları komut düzeyi ortamını değiştirmek için kullanamazsınız. Bu işlevler, işletim sisteminin bir işlem için oluşturduğu ortam "segmenti" üzerinde değil, yalnızca çalışma zamanı kitaplığı tarafından erişilebilen veri yapılarında çalışır. Geçerli işlem sonlandırıldığında ortam, çoğu durumda işletim sistemi düzeyi olan arama işleminin düzeyine geri döner. Ancak, değiştirilen ortam , _execveya systemtarafından _spawnoluşturulan tüm yeni işlemlere geçirilebilir ve bu yeni işlemler ve _wputenv_starafından _putenv_s eklenen tüm yeni öğeleri alır.

Ortam girdisini doğrudan değiştirmeyin; bunun yerine veya _wputenv_s kullanarak _putenv_s değiştirin. Özellikle, genel dizinin öğelerinin doğrudan boşaltılması geçersiz belleğin _environ[] ele alınmasına neden olabilir.

getenvortam _putenv_s tablosuna _wgetenv erişmek için genel değişkeni _environ kullanın ve _wputenv_s kullanın_wenviron. _putenv_sve _wputenv_s ve değerini _wenviron_environ değiştirebilir ve böylece ve bağımsız wmaindeğişkenini main _wenvp olarak geçersiz kılabilirenvp. Bu nedenle, ortam bilgilerini kullanmak _environ veya _wenviron erişmek daha güvenlidir. ve ile genel değişkenlerin ilişkisi _putenv_s hakkında daha fazla bilgi için bkz_environ. , _wenviron._wputenv_s

Not

_putenv_s ve _getenv_s işlev aileleri iş parçacığı açısından güvenli değildir. _getenv_s dizeyi değiştirirken _putenv_s bir dize işaretçisi döndürebilir ve böylece rastgele hatalara neden olabilir. Bu işlevlere yapılan çağrıların eşitlenmiş olduğundan emin olun.

Gereksinimler

Yordam Gerekli başlık
_putenv_s <stdlib.h>
_wputenv_s <stdlib.h> veya <wchar.h>

Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.

Örnek

uygulamasının nasıl kullanılacağını _putenv_sgösteren bir örnek için bkz getenv_s. , _wgetenv_s.

Ayrıca bkz.

İşlem ve ortam denetimi
getenv, _wgetenv
_searchenv, _wsearchenv