Компилятор предупреждает против использования sprintf()
, потому что это может вызвать переполнение буфера, так как он не проверяет ограничение буфера. Вместо этого используйте snprintf()
, который никогда не заполняет буфер за пределами переданного предела.
Этот совет также дает manpage :
Поскольку sprintf () и vsprintf () предполагают произвольно длинную строку, вызывающие должны быть
осторожно, чтобы не переполнить реальное пространство; это часто невозможно гарантировать. Обратите внимание, что
длина создаваемых строк зависит от локали и ее трудно предсказать. использование
взамен snprintf () и vsnprintf () (или asprintf (3) и vasprintf (3)).