_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_s
bkz . Genel metin işlevi 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 EINVAL
ayarlanı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_s
geniş 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 işlevi 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_string
değiştirilir; aksi takdirde, yeni varname
değişken ve ortamına value_string
eklenir. için value_string
boş 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 , _exec
veya system
tarafından _spawn
oluşturulan tüm yeni işlemlere geçirilebilir ve bu yeni işlemler ve _wputenv_s
tarafı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.
getenv
ortam _putenv_s
tablosuna _wgetenv
erişmek için genel değişkeni _environ
kullanın ve _wputenv_s
kullanın_wenviron
. _putenv_s
ve _wputenv_s
ve değerini _wenviron
_environ
değiştirebilir ve böylece ve bağımsız wmain
değ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_s
gösteren bir örnek için bkz getenv_s
. , _wgetenv_s
.
Ayrıca bkz.
İşlem ve ortam denetimi
getenv
, _wgetenv
_searchenv
, _wsearchenv