РЕДАКТИРОВАТЬ: случайные, ошибочные бессмыслицы удалены. Я сказал это?
РЕДАКТИРОВАТЬ: Маттео в своем комментарии ниже абсолютно прав, и я был абсолютно неправ.
From C99:
2 Функция snprintf эквивалентна fprintf, за исключением того, что вывод записывается в массив (заданный аргументом s), а не в поток.Если n равно нулю, ничего не записывается, а s может быть нулевым указателем.В противном случае выходные символы за пределами n-1 отбрасываются, а не записываются в массив, и нулевой символ записывается в конце символов, фактически записанных в массив.Если копирование происходит между объектами, которые перекрываются, поведение не определено.
Возвращает 3 Функция snprintf возвращает количество символов, которые были бы записаны, если бы n было достаточно большим, не считая завершающий нулевой символ илиотрицательное значение, если произошла ошибка кодирования.Таким образом, вывод с нулевым символом в конце был полностью записан тогда и только тогда, когда возвращаемое значение неотрицательно и меньше n.
Спасибо, Маттео, и я прошу прощения у ОП.
Это отличная новость, потому что она дает положительный ответ на вопрос, который я задал здесь толькотри недели назад.Я не могу объяснить, почему я не прочитал все ответы, что дало мне то, что я хотел.Отлично!