"средство ведения журнала использует sprintf для форматирования текста, который записывается в файл"
fprintf()
не накладывает никаких ограничений по размеру. Если вы можете написать текст непосредственно в файл, сделайте это!
Я предполагаю, что есть некоторый промежуточный шаг обработки, однако. Если вы знаете, сколько места вам нужно, вы можете использовать malloc()
, чтобы выделить это место.
Одна из техник, подобных этим, заключается в выделении буфера разумного размера (который будет достаточно большим в 99% случаев), а если он недостаточно велик, разбивайте данные на куски, которые вы обрабатываете один за другим. *