Ответ 1
printf()
имеет верхний предел. Он успешно справится с N char
s. N составляет не менее 4095.
Количество символов, которые могут быть получены с помощью любого единственного преобразования, должно быть не менее 4095. C11dr §7.21.6.1 15
[изменить]
При таком большом (320 kB) ожидаемом выходе, если это возможно, рассмотрите возможность использования fputs(s, stream)
, а не fprintf(stream, "%s", s);
, у которого нет этого ограничения 4095.
Аналогично максимальный размер printf/fprintf в соответствии с c99