vsnprintf — Format a string and place it in a buffer
| int vsnprintf ( | char * buf, | 
| size_t size, | |
| const char * fmt, | |
| va_list args ); | 
bufThe buffer to place the result into
sizeThe size of the buffer, including the trailing null space
fmtThe format string to use
argsArguments for the format string
   This function follows C99 vsnprintf, but has some extensions:
   pS output the name of a text symbol with offset
   ps output the name of a text symbol without offset
   pF output the name of a function pointer with its offset
   pf output the name of a function pointer without its offset
   pB output the name of a backtrace symbol with its offset
   pR output the address range in a struct resource with decoded flags
   pr output the address range in a struct resource with raw flags
   pb output the bitmap with field width as the number of bits
   pbl output the bitmap as range list with field width as the number of bits
   pM output a 6-byte MAC address with colons
   pMR output a 6-byte MAC address with colons in reversed order
   pMF output a 6-byte MAC address with dashes
   pm output a 6-byte MAC address without colons
   pmR output a 6-byte MAC address without colons in reversed order
   pI4 print an IPv4 address without leading zeros
   pi4 print an IPv4 address with leading zeros
   pI6 print an IPv6 address with colons
   pi6 print an IPv6 address without colons
   pI6c print an IPv6 address as specified by RFC 5952
   pIS depending on sa_family of 'struct sockaddr *' print IPv4/IPv6 address
   piS depending on sa_family of 'struct sockaddr *' print IPv4/IPv6 address
   pU[bBlL] print a UUID/GUID in big or little endian using lower or upper
   case.
   %*pE[achnops] print an escaped buffer
   %*ph[CDN] a variable-length hex string with a separator (supports up to 64
   bytes of the input)
   pC output the name (Common Clock Framework) or address (legacy clock
   framework) of a clock
   pCn output the name (Common Clock Framework) or address (legacy clock
   framework) of a clock
   pCr output the current rate of a clock
   n is ignored
   
** Please update Documentation/printk-formats.txt when making changes **
   The return value is the number of characters which would
   be generated for the given input, excluding the trailing
   '\0', as per ISO C99. If you want to have the exact
   number of characters written into buf as return value
   (not including the trailing '\0'), use vscnprintf. If the
   return is greater than or equal to size, the resulting
   string is truncated.
   
   If you're not already dealing with a va_list consider using snprintf.