У вас есть (как минимум) два варианта. Безусловно, наиболее распространенным является выделение буфера, который предполагается «достаточно большим» (например, несколько килобайт), и просто использование его (и, возможно, неправильное поведение, если он предоставляется с данными, которые не соответствуют этому ограничению).
Основной альтернативой является динамическое выделение памяти для буфера, и если / если эти данные не подходят, используйте realloc
, чтобы увеличить размер буфера и прочитать еще немного.