Я хочу переместить головку ввода-вывода в начало некоторого CodedOutputStream или ZeroCopyOutputStream, чтобы я мог обновить структуру данных заголовка, сколько файлов protobuf находится в файле, и сколько байтов потребляют следующие сообщения.Буферы протокола Google, обратная перегруппировка главы ввода-вывода в предоставленных объектах потока
Backup function не предназначен для этого, любые предложения? Я создаю формат файла для данных о событиях, где каждый файл содержит множество наборов данных событий. Мне нужно два типа объектов заголовка для этого (фиксированный размер). Глобальный и один набор данных. Я обновляю их после записи в событиях набора данных. Итак, как мне переместить заголовок записи, не повреждая внутреннее состояние объектов потока?.
редактировать
Интересно, если я потопить поток обертки и просто использовать функции с пересадить голову, будет эта работа для потоковых классов, или я в конечном итоге в неопределенном земли?
Хм, возможно, я списал этот подход по причинам, не связанным с правом. Я мог бы использовать файловую систему, я полагаю. –
Да, это очень разумное предложение, спасибо. Я буду использовать boost :: iostream, из которого я могу получить filedescriptor from и protobuf. таким образом я могу использовать заголовки переменной длины. –