protobuf: Сериализация сообщения с разделителями в закодированный поток завершается с ошибкой после 8192 байт

Я пытаюсь написать серию сообщений разделил с помощью этой функции в google::protobuf::util кодированный поток, указывающий на файл в моей локальной файловой системе. Похоже, что вызов message.SerializeWithCachedSizes() терпит неудачу после успешной записи ровно 8192 байтов сообщений с разделителями в поток.

Мой вариант использования почти идентичен этому пользователю, который задал вопрос о том, как писать сообщения в файл.

Насколько я мог видеть, документация по буферу протокола ничего не говорит о специальной обработке записи данных в закодированный поток за пределами 8192 байт, поэтому я предполагаю, что это должно просто работать. Это ожидаемое поведение, и другие успешно использовали эту функцию без проблем?

Я также пытался использовать Ostream и ZeroCopyFileStream с таким же поведением.


person the_bearded_skull    schedule 05.05.2019    source источник