Kotarıcı İşlevin Tanımlanması
Önceki printf İşlevinin Özelleştirilmesi Sonraki
Kotarıcı İşlevin Tanımlanması
Şimdi register_printf_function işlevine aktarılacak kotarıcı işlev ile argüman bilgileri işlevinin nasıl tanımlanacağına bakalım.
Uyumluluk Bilgisi:
Arayüz GNU libc 2.0 sürümünde değiştirilmiştir. Bundan önce üçüncü argümanın türü va_list * idi.
Kotarıcı işlevi bu prototipin benzeri olarak bildirebilirsiniz.:
int işlev-ismi (FILE                     *akım,
             const struct printf_info *bilgi,
             const void *const        *args)
akım argümanı, kotarıcı işlevin çıktıyı yazacağı akımdır.
bilgi argümanı, şablon dizgesindeki belirteç ile birlikte belirtilen çeşitli seçenekler hakkında bilgi içeren bir yapının göstericisidir. Bu veri yapısını kotarıcı işlevin içinde değiştirmemelisiniz. Bu veri yapısının açıklamaları için Dönüşüm Belirteci Seçenekleri bölümüne bakınız.
args argüman sayısının atanacağı göstericidir. Argüman sayısı, yazılımcı tarafından tanımlanan argüman bilgileri işlevi çağrılarak elde edilir.
Sizin kotarıcı işleviniz de tıpkı printf işlevi gibi değer döndürmelidir: Ya çıktılanan karakterlerin sayısı ile dönmeli ya da hata durumunda hatayı ifade eden negatif bir değer ile dönmelidir.
printf_function
veri türü
Bu, kotarıcı işlevin türüdür.
Yazılımınızda parse_printf_format işlevini kullanacaksanız, register_printf_function ile tanımlayacağınız her dönüşüm belirteci için argtürleri-işlevi argümanı ile aktaracağınız işlevi de tanımlamalısınız.
Bu işlevleri buna benzer bir prototiple bildirebilirsiniz:
int işlev-ismi (const struct printf_info *bilgi,
             size_t                    n,
             int                      *argtürleri)
İşlevden dönen değer, dönüşümü umulan argümanların sayısı olmalıdır. İşlev ayrıca bu argümanların herbiri için tür bilgisini içeren en çok n elemanlı argtürleri dizisini de doldurmalıdır. Bu bilgi PA_ makroları kullanılarak kodlanır. (Bu, parse_printf_format işlevinin kullandığı çağrı ile aynı yapıdaysa uyarılacaksınız.)
printf_arginfo_function
veri türü
Dönüşüm belirteçleri tarafından kullanılan argümanların türleri, seçenekleri ve sayıları hakkında bilgi döndüren işlevin türüdür.
Önceki Üst Ana Başlık Sonraki
Dönüşüm Belirteci Seçenekleri Başlangıç printf Genişletme Örneği
Bir Linux Kitaplığı Sayfası