| XPRINTF_COMP(3) | Library Functions Manual | XPRINTF_COMP(3) |
free_printf_comp,
new_printf_comp — extensible
printf compilation
#include
<printf.h>
void
free_printf_comp(printf_comp_t
pc);
printf_comp_t
new_printf_comp(printf_domain_t
restrict domain, locale_t
restrict loc, const char
* restrict fmt);
To ameliorate some of the slowness caused by the extra overhead in
extensible printf (see xprintf(5)), a
compile/execute mechanism has been created. The
new_printf_comp()
function compiles the given format string, along with a printf domain (see
xprintf_domain(3)) and an
extended locale (see xlocale(3)), and
returns a printf_comp_t structure. The domain may not
be NULL, but the locale can be
NULL, which means to use the current locale, either
the per-thread locale if it was set, or else the global locale. Because the
printf_comp_t structure records the domain and locale,
care should be taken if either of these are changed.
Once a printf_comp_t structure is created, it can be passed to one of the extensible printf execution variants, described in xprintf_exec(3), along with the necessary arguments. Creating the printf_comp_t structure needs to be done only once, but it can be passed to extensible printf execution variants any number of times.
When the printf_comp_t
structure is no longer needed, it should be passed to
free_printf_comp()
to release internal memory.
The new_printf_comp() function returns the
new structure, or NULL on error (usually NULL domain
or out of memory condition).
| August 19, 2012 | Darwin |