Biçimli Çıktıyı Özdevimli Ayırma
Önceki Biçimli Çıktı Sonraki
Biçimli Çıktıyı Özdevimli Ayırma
Bu bölümdeki işlevler biçimli çıktı oluşturur ve sonucu özdevimli ayrılan belleğe yazar.
int asprintf
(char      **gstr,
 const char *şablon,
 …)
işlev
Bu işlev, çıktıyı sizin ayırdığınız bir tampona değil, özdevimli ayrılmış (malloc ile; Bkz. Özgür Bellek Ayırma) bir dizgeye yazması dışında sprintf işlevi gibidir. gstr argümanı, bir char * nesnesinin adresi olmalıdır. asprintf bu konumda yeni ayrılmış dizgeye bir gösterici saklayacaktır.
Dönen değer ayrılan dizgenin karakter sayısıdır; dizge için yer ayrılamadığı durumlarda ve hata durumunda sıfırdan küçük bir değerle döner.
Aşağıdaki örnekte, snprintf örneğindeki sonucun asprintf kullanarak nasıl elde edildiği gösterilmektedir:
/*  isim isminde ve deger değerinde
    bir değişkenin değerini açıklayan bir ileti oluşturalım. */
char *
ileti_yap (char *isim, char *deger)
{
  char *sonuc;
  if (asprintf (&sonuc, "%s değişkeninin değeri %s'dir", isim, deger) < 0)
    return NULL;
  return sonuc;
}
int obstack_printf
(struct obstack *yığınak,
 const char     *şablon,
 …)
işlev
Bu işlev, alan ayırmak için yığınak yığınağını kullanması dışında asprintf işlevinin benzeridir. Yığınaklarla ilgili bilgi için Yığınaklar (Obstacks) bölümüne bakınız.
Karakterler nesnenin sonuna yazılır. Onları almak için nesneyi obstack_finish ile bitirmelisiniz. Bkz. Büyüyen Nesneler.
Önceki Üst Ana Başlık Sonraki
Biçimli Çıktı İşlevleri Başlangıç Değişkin Çıktı İşlevleri
Bir Linux Kitaplığı Sayfası