8.1120 vsnprintf
POSIX specification:
http://www.opengroup.org/onlinepubs/...vsnprintf.html
Gnulib module: vsnprintf or vsnprintf-posix
Portability problems fixed by either Gnulib module vsnprintf or vsnprintf-posix:
• This function is missing on some platforms: IRIX 5.3, OSF/1 4.0, Solaris 2.5.1.
• This function does not support format directives that access arguments in an arbitrary
order, such as "%2$s", on some platforms: NetBSD 3.0, mingw, MSVC 9, BeOS.
• This function overwrites memory even when a size argument of 1 is passed on some
platforms: Linux libc5, BeOS.
• This function does not return a byte count as specified in C99 on some platforms:
HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, mingw, MSVC 9.
Portability problems fixed by Gnulib module vsnprintf-posix:
• This function does not support size specifiers as in C99 (hh, ll, j, t, z) on some
platforms: AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.5.24,
mingw, MSVC 9, BeOS.
• printf of ‘long double’ numbers is unsupported on some platforms: mingw, MSVC 9,
BeOS.
• printf "%f", "%e", "%g" of Infinity and NaN yields an incorrect result on some platforms:
AIX 5.2, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9.
• This function does not support the ‘a’ and ‘A’ directives on some platforms: glibc-2.3.6,
MacOS X 10.5, NetBSD 5.0, OpenBSD 4.0, AIX 5.2, HP-UX 11, IRIX 6.5, OSF/1 5.1,
Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9, BeOS.
• This function does not support the ‘F’ directive on some platforms: NetBSD 3.0, AIX
5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.5.x, mingw, MSVC 9,
BeOS.
• This function does not support the ‘ls’ directive on some platforms: OpenBSD 4.0,
IRIX 6.5, Solaris 2.6, Cygwin 1.5.x, Haiku.
• This function does not support precisions in the ‘ls’ directive correctly on some plat-
forms: Solaris 11 2011-11.
• This function doesn’t support the ’ flag on some platforms: NetBSD 3.0, Cygwin
1.5.24, mingw, MSVC 9.
• This function behaves incorrectly when a ‘-’ flag and a negative width are specified
together, on some platforms: HP-UX 10.20.
• printf "%010f" of NaN and Infinity yields an incorrect result (padded with zeroes) on
some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, AIX 5.2, IRIX 6.5, OSF/1
5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9.
• This function does not support precisions larger than 512 or 1024 in integer, floating-
point and pointer output on some platforms: AIX 7.1, Solaris 10/x86, mingw, MSVC
9, BeOS.
• This function mishandles large floating point precisions (for example, formatting 1.0
with ‘"%.511f"’) on some platforms: Solaris 10.
• This function can crash in out-of-memory conditions on some platforms: MacOS X
10.3, FreeBSD 6.0, NetBSD 5.0.
• This function does not truncate the result as specified in C99 on some platforms:
mingw, MSVC 9.
• This function does not fully support the ‘n’ directive on some platforms: HP-UX 11,
mingw, MSVC 9.
• This function overwrites memory even when a zero size argument is passed on some
platforms: HP-UX 11, OSF/1 5.1.
Portability problems not fixed by Gnulib:
• When formatting an integer with grouping flag, this function inserts thousands sepa-
rators even in the "C" locale on some platforms: NetBSD 5
Partager