Yeni Dönüşümlerin Kaydı
Önceki printf İşlevinin Özelleştirilmesi Sonraki
Yeni Dönüşümlerin Kaydı
register_printf_function işlevi printf.h başlık dosyasında bildirilmiştir ve yeni tanımladığınız bir dönüşüm belirtecini kaydetmek için kullanılır.
int register_printf_function
(int                     belirteç,
 printf_function         kotarıcı-işlev,
 printf_arginfo_function argtürleri-işlevi)
işlev
Bu işlev belirteç dönüşüm belirteç karakterini tanımlar. Eğer belirteç 'Y' ise dönüşüm belirteci %Y olacaktır. %s gibi yerleşik dönüşüm belirteçlerini de tanımlayabilirsiniz ama # gibi im karakterlerini l gibi tür değiştiricileri dönüşüm karakteri olarak tanımlayamazsınız. İşlevi bu karakterlerden biri ile çağırırsanız hiçbir etkisi olmaz. Küçük harfleri dönüşüm karakteri olarak tanımlamasanız iyi olur, çünkü ISO C standardı, standardın gelecekteki iyileştirmelerinde başka küçük harflerin de standarda dahil edebileceği konusunda uyarıyor.
kotarıcı-işlev, bir şablon dizgesinde tanımladığınız karakterlerlerden birine rastlarsa printf ve arkadaşları tarafından çağrılacak işlevdir. İşleve argüman olarak atanan böyle bir işlevin nasıl tanımlanacağı Kotarıcı İşlevin Tanımlanması bölümünde açıklanmıştır. Bu argüman bir boş gösterici belirtirseniz, belirteç için atanan kotarıcı işlevi kaldırılacaktır.
argtürleri-işlevi ise, bu dönüşüm belirteci bir şablon dizgesinde kullanıldığında parse_printf_format işlevi tarafından çağrılır. Bu konu hakkında daha ayrıntılı bilgi almak için Bir Şablon Dizgesinin Çözümlenmesi bölümüne bakınız.
Dikkat
GNU C kütüphanesinin 2.0 öncesi sürümlerinde argtürleri-işlevi işlevinin parse_printf_format işlevi çağrılmadıkça tanımlanması gerekmiyordu. Bu şimdi değişti. Artık, dönüşüm belirteci şablon dizgesinde kullanılmışsa her printf çağrısında bu işlev çağrılmaktadır.
İşlev başarı durumunda 0 ile döner. Hata oluşması halinde (belirteç aralık dışındaysa) -1 ile döner.
Standart dönüşüm belirteçlerini de yeniden tanımlayabilirseniz de, karışıklığa yol açma olasılığından dolayı iyi bir fikir olmayacaktır. Başkaları tarafından yazılış kütüphane işlevleri bunu yaparsanız hata verebilir.
Önceki Üst Ana Başlık Sonraki
printf İşlevinin Özelleştirilmesi Başlangıç Dönüşüm Belirteci Seçenekleri
Bir Linux Kitaplığı Sayfası