Я попадаю на эту страницу, потому что я тоже задаю тот же вопрос. Вот что я прочитал из книг:
Расширенное программирование в среде UNIX: второе издание
Раздел 10,6
Большинство функций, которых нет на рисунке 10.4 (список реентерабельных функций) отсутствуют, потому что (a) известно, что они используют статические структуры данных, (b) они вызывают malloc или free, или ( c) они являются частью стандартной библиотеки ввода-вывода .
Интерфейс программирования Linux
Глава 21.1.2
Функции также могут быть не входящими, если они используют статические структуры данных для своих
внутренняя бухгалтерия. Наиболее очевидными примерами таких функций являются члены
библиотеки stdio (printf (), scanf () и т. д.), которая обновляет внутренние данные
структуры для буферизованного ввода / вывода.
Я полагаю, это зависит от реализации. Это также зависит от того, как вы используете snprintf на самом деле (буфер необходим). Самый безопасный ответ на вопрос должен быть «нет».