vsnprintf — Format a string and place it in a buffer
int vsnprintf ( | char * buf, |
size_t size, | |
const char * fmt, | |
va_list args) ; |
buf
The buffer to place the result into
size
The size of the buffer, including the trailing null space
fmt
The format string to use
args
Arguments 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
pM
output a 6-byte MAC address with colons
pm
output a 6-byte MAC address without colons
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
//tools.ietf.org/html/draft-ietf-6man-text-addr-representation-00
pU
[bBlL] print a UUID/GUID in big or little endian using lower or upper
case.
n
is ignored
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
.