Embedded TCP/IP stack: fnet_snprintf

FNET

fnet_size_t fnet_snprintf ( fnet_char_t str,
fnet_size_t  size,
const fnet_char_t format,
  ... 
)

Prints formatted text to the buffer. The length of the buffer is given, that prevents the buffer overflows.

Parameters
strPointer to buffer where the resulting string is stored.
sizeMaximum number of characters to produce. The trailing null character is counted towards this limit
formatFormat string.
Returns
This function returns the number of characters that were successfully written, excluding the trailing null.
See also
fnet_sprintf()

This function is just like fnet_sprintf(), except that the length of the buffer is given. This prevents buffer overflows.

The format string contains the text to be written to the str buffer. The optional arguments following format are items (integers, characters or strings) that are to be converted to character strings and inserted into the output of format at specified placeholders. The number of arguments following the format parameters should at least be as much as the number of format placeholders.
The syntax for a format placeholder is "%[Flags][Width][Length]Type".

  • Flags can be omitted or be any of:
    • - : Left justify.
    • + : Right justify.
    • 0 : Pad with leading zeros.
    • space : Print space if no sign.
  • Width is minimum field width. It can be omitted.
  • Length is conversion character. It can be omitted or by any of:
    • h : Short integer.
    • l : Long integer.
  • Type can by any of:
    • d, i : Integer.
    • u : Unsigned.
    • x, X : Hexadecimal.
    • o : Octal.
    • b : Binary.
    • p : Pointer.
    • c : Single char.
    • s : Char string.
    • n : Nothing.
Note
To save some bytes from all the hard coded strings the fnet_(s)printf() functions will expand all line feeds ("\n") inside the format string to CR LF ("\r\n"). So do not use "\r\n" in the format string - it will be expanded to "\r\r\n". It is save to add it via a parameter though, e.g. fnet_printf("%s", "\r\n");
This feature can be disable/enabled by the FNET_CFG_SERIAL_PRINTF_N_TO_RN configuration parameter.

© 2005-2018 by Andrey Butok. http://fnet.sourceforge.net