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 |