EDIT: случайный, ошибочный вздор удален. I сказать, что?
EDIT: Маттео в своем комментарии ниже абсолютно прав, и я был абсолютно неправ.
От C99:
2 Функция snprintf эквивалентна fprintf, за исключением того, что выходной сигнал записывается в массив (заданный аргументом с), а не к потоку. Если n равно нулю, ничего не записывается, и s может быть нулевым указателем. В противном случае выходные символы, выходящие за пределы n-1, равны , отбрасываются, а не записываются в массив, а нулевой символ записывается в конце символов, фактически записанных в массив. Если копирование происходит между объектами , которые перекрываются, поведение не определено.
Возвращает 3 Функция snprintf возвращает количество символов, которые бы были написаны бы п были достаточно большими, не считая завершающий нулевой символ, или отр ческих значения, если произошла ошибка кодирования. Таким образом, вывод с нулевым завершением был полностью написанным тогда и только тогда, когда возвращаемое значение неотрицательно и меньше n.
Спасибо, Маттео, и я приношу свои извинения перед OP.
Это отличная новость, потому что она дает положительный ответ на вопрос question I'd asked here всего три недели назад. Я не могу объяснить, почему я не прочитал все ответы, которые дали мне то, что я хотел. Потрясающие!
Почему бы вам просто не спросить комментатора? –