In einem Versuch, mehrere Protocol Buffers-Nachrichten aus Dateien zu lesen und zu schreiben, die sowohl C als auch Java verwenden, ist dies der Fall Es wurde beobachtet, dass Java zu diesem Zweck eine Reihe von „getrennten“ I/O-Funktionen bereitstellt. Es bleibt jedoch ungewiss, ob C eine ähnliche Funktionalität bietet.
Die Java-API-Funktionen sind:
Ab Version 3.3.0 hat Google dieses Problem behoben, indem die folgenden C-Äquivalente in google/protobuf/util/delimited_message_util.h eingeführt wurden:
bool writeDelimitedTo( const google::protobuf::MessageLite& message, google::protobuf::io::ZeroCopyOutputStream* rawOutput) { // Code to write delimited messages } bool readDelimitedFrom( google::protobuf::io::ZeroCopyInputStream* rawInput, google::protobuf::MessageLite* message) { // Code to read delimited messages }
Für diejenigen, die die mit Größenpräfixen versehenen Nachrichten in C analysieren möchten, ohne die offizielle Bibliothek zu verwenden, ist die Das Wire-Format lautet wie folgt:
Die bereitgestellten C-Implementierungen enthalten Optimierungen, die in anderen Antworten fehlten. Diese Optimierungen stellen sicher, dass die Funktionen:
Das obige ist der detaillierte Inhalt vonC-Protokoll-Puffer-getrennte E/A: Gibt es Java-äquivalente Funktionen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!