Copyright (C) 2000-2012 |
GNU Info (libc.info)Registering New ConversionsRegistering New Conversions --------------------------- The function to register a new output conversion is `register_printf_function', declared in `printf.h'. - Function: int register_printf_function (int SPEC, printf_function HANDLER-FUNCTION, printf_arginfo_function ARGINFO-FUNCTION) This function defines the conversion specifier character SPEC. Thus, if SPEC is `'Y'', it defines the conversion `%Y'. You can redefine the built-in conversions like `%s', but flag characters like `#' and type modifiers like `l' can never be used as conversions; calling `register_printf_function' for those characters has no effect. It is advisable not to use lowercase letters, since the ISO C standard warns that additional lowercase letters may be standardized in future editions of the standard. The HANDLER-FUNCTION is the function called by `printf' and friends when this conversion appears in a template string. Note: Defining the Output Handler, for information about how to define a function to pass as this argument. If you specify a null pointer, any existing handler function for SPEC is removed. The ARGINFO-FUNCTION is the function called by `parse_printf_format' when this conversion appears in a template string. Note: Parsing a Template String, for information about this. *Attention:* In the GNU C library versions before 2.0 the ARGINFO-FUNCTION function did not need to be installed unless the user used the `parse_printf_format' function. This has changed. Now a call to any of the `printf' functions will call this function when this format specifier appears in the format string. The return value is `0' on success, and `-1' on failure (which occurs if SPEC is out of range). You can redefine the standard output conversions, but this is probably not a good idea because of the potential for confusion. Library routines written by other people could break if you do this. automatically generated by info2www version 1.2.2.9 |