1

C'est à propos de cette magnifique extension de la glibc: register_printf_specifier

A l'origine, il y avait register_printf_function qui était (et est toujours) parfaitement documenté sur le site officiel de la glibc: http://www.gnu.org/software/libc/manual/html_node/Customizing-Printf.html
Mais un warning deprecated apparait lorsqu'on utilise cette fonction. La doc du site officiel ne le dit absolument pas (si il est à jour. Dernière mise à jour August 14, 2015, for glibc 2.22).

Ils ont donc créé une nouvelle API pour étendre l'affichage de printf: register_printf_specifier, register_printf_type, register_printf_modifier. Mais elle est documentée nulle part !

Donc l'ancienne API est obsolète mais documentée, et la nouvelle non documentée. Magnifique !

Tout ce qu'on trouve est un exemple d'utilisation: https://sourceware.org/bugzilla/attachment.cgi?id=3874&action=view
Bon, l'exemple est suffisamment détaillé pour savoir s'en servir (dans le cas basique)...

Mais : static int toto_printf_f (FILE *fp, const struct printf_info *info, const void *const *args) { const toto_struct * const * const * const *toto_arg = (const toto_struct * const * const * const *) args; toto_out(fp, ***toto_arg); }
Regarder moi ce niveau d'indirection ! Non, je ne me suis pas trompé. C'est bien le bon niveau pour afficher ce que je veux ! eek

2

Mais vu que c'est open-source, tu vas pouvoir changer cela en mieux #CAGJGHO3#
avatar
« Nous avons propagé sur Extranet une histoire fabriquée de toutes pièces selon laquelle une certaine disposition d'étoiles, vue depuis la planète d'origine des butariens, formaient le visage d'une déesse galarienne.
Sans chercher à vérifier ces informations, certains ont décrété que c'était la preuve de l'existence de la déesse. Ceux qui notaient le manque de preuves se faisaient attaquer. »

Legion, geth trolleur à portée galactique