Ortama Erişim
Önceki Ortam Değişkenleri Sonraki
Ortama Erişim
Bir ortam değişkeninin değerine getenv işlevi ile erişebilirsiniz. Bu işlev stdlib.h başlık dosyasında bildirilmiştir. Bu bölümdeki işlevlerin hepsini çok evreli yazılımlarda güvenle kullanabilirsiniz. Ortamın böyle rasgele değişmesi hatalara yol açmaz.
char *getenv
(const char *isim)
işlev
Bu işlev isim ile ismi belirtilen ortam değişkeninin değeri olan dizgeyi döndürür. Bu dizgeyi değiştirmemelisiniz. GNU kütüphanesinin kullanılmadığı bazı Unix sistemlerinde getenv çağrısının sonraki çağrıları bu değerin üzerine yazar (ama başka bir kütüphane işlevi bunu yapmaz). Eğer isim isimli bir ortam değişkeni yoksa, işlev bir boş gösterici ile döner.
int putenv
(char *dizge)
işlev
putenv işlevi ortam değişkenlerini tanımlamak ya da kaldırmak için kullanılır. Ortamda bir değişken tanımlamak için dizge, isim=değer biçiminde verilmelidir. Aksi takdirde dizge, mevcut bir ortam değişkeninin ismi olarak yorumlanıp, bu değişken ortamdan kaldırılır.
setenv işlevinden farkı, dizge parametresi olarak belirtilen dizgenin ortama konulmasıdır. Eğer putenv çağrısından sonra kullanıcı değişkenin değerini değiştirmezse bu dizge ortamda aynen böyle görünecektir. Ayrıca, dizge olarak belirtilen isim, değişken ortamdan kaldırıldığında da yazılımın etki alanı içinde varlığını sürdüren bir özdevinimli değişkenin ismi olmamalıdır. Aynısı normal olarak, daha sonra serbest bırakılan özdevimli ayrılmış değişkenler için de geçerlidir.
Bu işlev genişletilmiş Unix arayüzünün bir parçasıdır. Eski SVID kütüphanelerinde de kullanılabildiğinden bunu sağlamak için yazılım içinde herhangi bir başlık dosyasından önce _XOPEN_SOURCE veya _SVID_SOURCE tanımlamalısınız.
int setenv
(const char *isim,
 const char *değer,
 int         değiştir)
işlev
setenv işlevi ortama yeni bir tanım eklemek için kullanılabilir. isim isimli girdi isim=değer değeri ile değiştirilir. Bunun, değer bir boş dizge olarak verildiğinde de böyle olacağını unutmayın. Bunu yapmak için yeni dizge oluşturulur ve isim ve değer dizgelerine kopyalanır. değer dizgesi olarak boş gösterici kuraldışıdır (boş dizge, boş gösterici değildir). Ortam zaten isim isimli bir değişken içeriyorsa bu durumda ne yapılacağı değiştir ile belirtilir. değiştir değeri sıfırsa hiçbir şey yapılmaz. Aksi takdirde eski girdi yenisi ile değiştirilir.
Bir girdiyi ortamdan bu işlev ile kaldıramayacağınızı lütfen unutmayın.
Bu işlev bir zamanlar BSD kütüphanesinin bir parçasıyken şimdi Unix standardının da parçasıdır.
int unsetenv
(const char *isim)
işlev
Bu işlevi kullanarak bir değişkeni ortamdan tamamen kaldırabilirsiniz. Eğer ortamda ismi isim olan bir ortam değişkeni varsa, bu girdi ortamdan tamamen kaldırılır. Bu işlevin çağrısı, putenv işlevinin değer argümanına boş dizge belirtilerek çağrılmasına eşdeğerdir.
isim bir boş gösterici ise, bir boş dizge ise ya da dizge bir = karakeri içeriyorsa işlev -1 ile döner. Çağrı başarılı olduğunda 0 döner.
Bu işlev bir zamanlar BSD kütüphanesinin bir parçasıyken şimdi Unix standardının da parçasıdır. Ne var ki, BSD sürümü bir değer döndürmüyordu.
Ortamda değişiklik yapan bir işlev daha vardır. Bu işlevin POSIX.9 [Fortran 77 ile bağlantılı POSIX] içinde olduğundan ve onun POSIX.1'e dahi edilmesi gerektiğinden bahsedilir. Fakat bu şimdiye kadar olmadı. Ama biz bu işlevi bir GNU oluşumu olarak, standart Fortran ortamlarına uyumlu yazılım geliştirilebilmesini sağlamak için bulunduruyoruz.
int clearenv
(void)
işlev
clearenv işlevi ortamdan tüm girdileri kaldırır. putenv ve setenv çağrılarıyla ortama tekrar yeni girdiler eklenebilir.
İşlev başarılı olursa 0 ile döner. Aksi takdirde sıfırdan farklı bir değer ile döner.
Ortama değişken eklemek için ortam nesnelerinin bellibaşlı gösterimleri ile doğrudan çalışabilirsiniz (örneğin, çalıştıracağınız başka bir yazılımla haberleşmek için; bkz. Bir Dosyanın Çalıştırılması).
char **environ
değişken
Ortamı bir dizge dizisi olarak içerir. Her dizge isim=değer biçimindedir. Dizgelerin ortmda göründüğü sıra önemsizdir, fakat aynı isim birden fazla görünmez. Dizinin son elemanı bir boş göstericidir.
Bu değişken unistd.h başlık dosyasında bildirilmiştir.
Sadece bir ortam değişkeninin değeri ile ilgileniyosanız getenv işlevini kullanın.
Unix sistemleri ve GNU sisteminde environ değişkenin değeri main işlevinde üçüncü bir argüman olarak belirtilebilir. Bkz. Yazılım Argümanları.
Önceki Üst Ana Başlık Sonraki
Ortam Değişkenleri Başlangıç Standart Ortam Değişkenleri
Bir Linux Kitaplığı Sayfası