преобразование форматированного вывода (formatted output conversion)
Примечание (Note)
Some programs imprudently rely on code such as the following
sprintf(buf, "%s some further text", buf);
to append text to buf. However, the standards explicitly note
that the results are undefined if source and destination buffers
overlap when calling sprintf
(), snprintf
(), vsprintf
(), and
vsnprintf
(). Depending on the version of gcc(1) used, and the
compiler options employed, calls such as the above will not
produce the expected results.
The glibc implementation of the functions snprintf
() and
vsnprintf
() conforms to the C99 standard, that is, behaves as
described above, since glibc version 2.1. Until glibc 2.0.6,
they would return -1 when the output was truncated.