Dizge Değerli Parametreler
Önceki XXXI. Oylum - Sistem Yapılandırma Parametreleri Sonraki
Dizge Değerli Parametreler
POSIX.2, işletim sisteminden dizge değerli parametrelerin değerlerinin öğrenilmesi için confstr işlevini tanımlamıştır:
size_t confstr
(int    parametre,
 char  *tampon,
 size_t uzunluk)
işlev
Bu işlev bir dizge değerli sistem parametresinin değerini okur ve tampon'da başlayan bellek alanının uzunluk baytına bu dizgeyi yerleştirerek döner. parametre argümanı aşağıda listelenen _CS_ sembollerinden biri olmalıdır.
İşlevin normal dönüş değeri istenen dizgenin uzunluğudur. tampon olarak bir boş dizge verilmişse işlev dizgeyi buraya yerleştirmeye çalışmaz, sadece dizgenin uzunluğu ile döner. 0 dönüş değeri bir hata oluştuğunu gösterir.
Eğer istenen dizge için tamponda yeterince yer yoksa (yani uzunluk - 1'den daha uzunsa), işlev dizgenin ilk uzunluk - 1 baytını (sonlandırıcı boş karaktere yer bırakarak) yerleştirir. Bu durumun oluştuğunı işlev uzunluk bayta eşit ya da daha büyük bir değerle dönerek bildirir.
Aşağıdaki errno hata durumu bu işlev için tanımlanmıştır:
EINVAL
parametre değeri geçersiz
confstr işlevinin okuyabileceği parametreler:
_CS_PATH
Çalıştırılabilir dosyaların aranacağı öntanımlı dosya yollarının önerilen değeridir. Kullanıcı sisteme oturum açtığında öntanımlı olarak bu dosya yollarına sahip olur.
_CS_LFS_CFLAGS
Eğer bir kaynak _LARGEFILE_SOURCE kullanarak derlenmişse, C derleyiciye hangi ek seçeneklerin verileceğini belirten bir dizge döner. Bkz. Özellik Sınama Makroları.
_CS_LFS_LDFLAGS
Eğer bir kaynak _LARGEFILE_SOURCE kullanarak derlenmişse, ilintileyiciye hangi ek seçeneklerin verileceğini belirten bir dizge döner. Bkz. Özellik Sınama Makroları.
_CS_LFS_LIBS
Eğer bir kaynak _LARGEFILE_SOURCE kullanarak derlenmişse, uygulamanın hangi ek kütüphanelerle ilintileneceğini belirten bir dizge döner. Bkz. Özellik Sınama Makroları.
_CS_LFS_LINTFLAGS
Eğer bir kaynak _LARGEFILE_SOURCE kullanarak derlenmişse, lint aracına hangi ek seçeneklerin verileceğini belirten bir dizge döner. Bkz. Özellik Sınama Makroları.
_CS_LFS64_CFLAGS
Eğer bir kaynak _LARGEFILE64_SOURCE kullanarak derlenmişse, C derleyiciye hangi ek seçeneklerin verileceğini belirten bir dizge döner. Bkz. Özellik Sınama Makroları.
_CS_LFS64_LDFLAGS
Eğer bir kaynak _LARGEFILE64_SOURCE kullanarak derlenmişse, ilintileyiciye hangi ek seçeneklerin verileceğini belirten bir dizge döner. Bkz. Özellik Sınama Makroları.
_CS_LFS64_LIBS
Eğer bir kaynak _LARGEFILE64_SOURCE kullanarak derlenmişse, uygulamanın hangi ek kütüphanelerle ilintileneceğini belirten bir dizge döner. Bkz. Özellik Sınama Makroları.
_CS_LFS64_LINTFLAGS
Eğer bir kaynak _LARGEFILE64_SOURCE kullanarak derlenmişse, lint aracına hangi ek seçeneklerin verileceğini belirten bir dizge döner. Bkz. Özellik Sınama Makroları.
confstr işlevini dönecek dizgeye keyfi bir sınır belirtmeden kullanmanın tek yolu işlevi iki kere çağırmaktır; İlk çağrıda dizgenin uzunluğu döner, buna göre tamponu ayırıp işlevi tamponu doldurması için tekrar çağırırsınız. Örnek:
char *
get_default_path (void)
{
  size_t len = confstr (_CS_PATH, NULL, 0);
  char *buffer = (char *) xmalloc (len);

  if (confstr (_CS_PATH, buf, len + 1) == 0)
    {
      free (buffer);
      return NULL;
    }

  return buffer;
}
Önceki Üst Ana Başlık Sonraki
Araç Sınırları için Asgari Değerler Başlangıç XXXII. Oylum - Şifrelemeyle İlgili İşlevler
Bir Linux Kitaplığı Sayfası