Bildirim
char* getenv(const char *name);
errno_t getenv_s(size_t *restrict len, char *restrict value, rsize_t valuesz, const char *restrict name); (C11)
Açıklama
Name parametresinde adı verilen ortam değişkeninin içeriğini okur. Eğer adı verilen ortam değişkeni sistemde yoksa NULL işaretçi geri döndürür.
getenv_s() fonksiyonu getenv() fonksiyonuna ek olarak, uzunluğu len parametre değeri ile gösterilen ortam değişkeninin içeriği, maksimum boyutu valuesz parametre değeri ile gösterilen value parametre değeri ile gösterilen belleğe yazılır. Eğer adı verilen ortam değişkeni sistemde yoksa, len parametresine 0 değeri value parametresinin ilk byte'ına boş karakter ('\0') yazılır.
Ayrıca, çalışma zamanında aşağıdaki hatalar tespit edildiğinde, yüklenmiş olan kısıtlayıcı işlem fonksiyonu çağrılır:
Parametreler
name: Ortam değişkeninin adını gösteren karakter dizisidir.
len: Ortam değişkeninin uzunluğunun yükleneceği ve kullanıcı tarafından belirlenen bellek adresidir.
value: Ortam değişken içeriğinin yükleneceği kullanıcı tanımlı karakter dizisidir.
valuesz: Value parametre değeri ile gösterilen kullanıcı tanımlı karakter dizisinin maksimum boyutunu gösterir.
Dönüş değeri
Ortam değişkeni sistemde tanımlı ise, ortam değişkeninin içeriğinden oluşan bir karakter dizisini, değişken tanımlı değilse NULL bir işaretçi geri döndürülür.
getenv_s() fonksiyonu ise, ortam değişkeni tanımlı ise 0, ortam değişkeni tanımlı değilse sıfır olmayan bir değer geri döndürür. Bir hata meydana geldiğinde len parametresine 0 değeri yazılır.
Örnek
#include <stdio.h>
#include <stdlib.h>
int main (void) {
char *penv;
penv = getenv ("PATH");
if (penv!=NULL) printf ("PATH ortam değişken içeriği: %s", penv);
return 0;
}
Yukarıdaki program, getenv() fonksiyonu ile sistemdeki PATH ortam değişkeninin içeriğini alarak ekrana yazar.