_putenv
, _wputenv
Ortam değişkenlerini oluşturur, değiştirir veya kaldırır. Bu işlevlerin daha güvenli sürümleri mevcuttur; bkz. _putenv_s
, _wputenv_s
.
Ö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
int _putenv(
const char *envstring
);
int _wputenv(
const wchar_t *envstring
);
Parametreler
envstring
Ortam dizesi tanımı.
Dönüş değeri
İşlevler başarılı olursa 0 veya hata varsa -1 döndürür.
Açıklamalar
_putenv
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
, öğesinin _putenv
geniş karakterli bir sürümüdür; envstring
bağımsız değişkeni _wputenv
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
Tchar.h olağan |
_UNICODE and _MBCS tanımlanmadı |
_MBCS tanımlanan |
_UNICODE tanımlanan |
---|---|---|---|
_tputenv |
_putenv |
_putenv |
_wputenv |
envstring
Bağımsız değişken, eklenecek veya değiştirilecek value_string
ortam değişkeninin adı ve değişkenin değeri olan form varname=value_string
varname
dizesinin işaretçisi olmalıdır. Ortamın zaten bir parçasıysa varname
değeri ile value_string
değiştirilir; aksi takdirde, yeni varname
değişken ve value_string
değeri ortama eklenir. Boş value_string
bir veya başka bir deyişle yalnızca varname
= belirterek bir değişkeni ortamdan kaldırabilirsiniz.
_putenv
ve _wputenv
yalnızca geçerli işlemde yerel olan ortamı etkiler; bunları komut düzeyi ortamını değiştirmek için kullanamazsınız. Yani, bu işlevler yalnızca çalışma zamanı kitaplığı tarafından erişilebilen veri yapılarında çalışır. İşletim sistemi tarafından bir işlem için oluşturulan ortam kesiminde çalışmazlar. Geçerli işlem sonlandırıldığında ortam, çağrı işleminin düzeyine (çoğu durumda işletim sistemi düzeyi) 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
tarafından _putenv
eklenen tüm yeni öğeleri alır.
Ortam girdisini doğrudan değiştirmeyin: bunun yerine, _putenv
veya _wputenv
kullanarak değiştirin. Özellikle, genel dizinin doğrudan boşaltma öğeleri geçersiz belleğin _environ[]
ele alınmasına neden olabilir.
_getenv
ortam _putenv
tablosuna _wgetenv
erişmek için genel değişkeni _environ
kullanın ve _wputenv
kullanın_wenviron
. _putenv
ve _wputenv
ve değerini _environ
_wenviron
değiştirebilir, böylece bağımsız değişkeni main
_wenvp
ve olarak geçersiz kılınabilir _envp
wmain
. Bu nedenle, ortam bilgilerini kullanmak _environ
veya _wenviron
erişmek daha güvenlidir. ve ile genel değişkenler arasındaki ilişki _putenv
hakkında daha fazla bilgi için bkz_environ
. , _wenviron
._wputenv
Not
_putenv
ve _getenv
işlev aileleri iş parçacığı açısından güvenli değildir. _getenv
dizeyi değiştirirken _putenv
bir dize işaretçisi döndürebilir ve 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 |
<stdlib.h> |
_wputenv |
<stdlib.h> veya <wchar.h> |
Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.
Örnek
'nin nasıl kullanılacağına _putenv
ilişkin bir örnek için, bkz getenv
. , _wgetenv
.
Ayrıca bkz.
İşlem ve ortam denetimi
getenv
, _wgetenv
_searchenv
, _wsearchenv