Aracılığıyla paylaş


_putenv_s, _wputenv_s

Oluşturur, değiştirir veya ortam değişkenleri kaldırır.Sürümleri bunlar _putenv, _wputenv , ancak güvenlik geliştirmeleri, açıklandığı gibi crt güvenlik özellikleri.

Önemli notÖnemli

Bu API yürütün uygulamalarda kullanılamaz Windows Çalışma Zamanı.Daha fazla bilgi için bkz: /zw ile desteklenmeyen crt işlevlerinin.

errno_t _putenv_s(
   const char *name,
   const char *value 
);
errno_t _wputenv_s(
   const wchar_t *name,
   const wchar_t *value
);

Parametreler

  • name
    Ortam değişkeni adı.

  • value
    Ortam değişkeni ayarlanacak değer.

Dönüş Değeri

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

Hata koşulları

name

value

Dönüş değeri

NULL

herhangi bir

EINVAL

herhangi bir

NULL

EINVAL

Hata durumlardan biri oluşursa, bu işlevler bir geçersiz parametre işleyicisi açıklandığı gibi çağırmak Parametre doğrulama.Yürütülmesine devam etmek için izin verilip verilmediğini, bu işlevler dönmek EINVAL ve errno için EINVAL.

Notlar

_putenv_s İşlevi yeni ortam değişkenleri ekler veya varolan ortam değişkenlerinin değerlerini değiştirir.Ortam değişkenlerini (örneğin, bir programla bağlantılı olması için kitaplıklar için varsayılan arama yolu) bir işlem yürütür ortamı tanımlamak._wputenv_sgeniş karakter sürümü _putenv_s; envstring bağımsız değişkeni _wputenv_s bir geniş karakter dizesidir.

Genel metin eşlemeleri yordamına girildi

TCHAR.H yordamına girildi

_UNICODE & _mbcs tanımlanmamış

Tanımlanan _mbcs

Tanımlanan _UNICODE

_tputenv_s

_putenv_s

_putenv_s

_wputenv_s

nameeklenen veya değiştirilen ortam değişkeninin adıdır ve value değişkenin değeridir.name Zaten ortamın parçası olan değeri ile değiştirilir value; Aksi halde, yeni name değişken ve kendi value ortama eklenir.Boş bir dize belirleyerek bir değişken ortamdan kaldırabilirsiniz (yani, "") için value.

_putenv_sve _wputenv_s ; geçerli işleme yerel ortamı etkiler Düzey komut ortamı değiştirmek için kullanamazsınız.Çalışma Zamanı Kitaplığı'na erişilebilir veri yapıları ve ortam için bir işlem işletim sisteminin oluşturduğu "kesim" değil, bu işlevleri çalışır.Geçerli işlemi sonlandırır, ortamı olan çoğu durumda işletim sistemi düzeyinde arama işlemi düzeyine döner.Ancak, değiştirilmiş ortam tarafından oluşturulan tüm yeni işlemleri için geçirilebilir _spawn, _exec, veya system, ve bu yeni işlemler tarafından eklenen tüm yeni öğeler _putenv_s ve _wputenv_s.

Ortam girişi doğrudan değiştirmeyin; Bunun yerine, _putenv_s veya _wputenv_s değiştirmek için.Özellikle, öğeleri doğrudan boşaltma _environ[] genel bir dizi ele alınacak geçersiz bellek neden olabilir.

getenvve _putenv_s genel değişkeni kullanmak _environ ; ortam tablo erişmek için _wgetenvand _wputenv_s use _wenviron._putenv_sve _wputenv_s değeri değişebilir _environ ve _wenvironve böylece geçersiz kılmak envp bağımsız değişkeni main ve _wenvp bağımsız değişkeni wmain.Bu nedenle, kullanmak daha güvenli, _environ veya _wenviron ortamı bilgilere erişmek için.Arasındaki ilişki hakkında daha fazla bilgi için _putenv_s ve _wputenv_s genel değişkenler için bkz: _environ, _wenviron.

[!NOT]

_putenv_s Ve _getenv_s işlevlerinin aileleri iş parçacığı açısından güvenli değildir._getenv_sdize işaretçisi hata döndürmesine neden _putenv_s dize değiştirme ve böylece rasgele başarısız olmasına neden.Bu işlevlere olan çağrıları eşzamanlı olduğundan emin olun.

Gereksinimler

Yordamı

Gerekli başlık

_putenv_s

<stdlib.h>

_wputenv_s

<stdlib.h> veya <wchar.h>

Ek uyumluluk bilgileri için bkz: Uyumluluk.

Örnek

Nasıl kullanılacağını gösteren bir örnek için _putenv_s, bkz: getenv_s, _wgetenv_s.

.NET Framework Eşdeğeri

Yoktur. Standart c işlevi çağırmak için kullanın PInvoke. Daha fazla bilgi için bkz. Platform Çağırma örnekleri.

Ayrıca bkz.

Başvuru

İşlem ve ortam denetimi

GETENV, _wgetenv

_searchenv, _wsearchenv