在尝试使用 C 和 Java 从文件中读取和写入多个 Protocol Buffers 消息时,它有据观察,Java 为此目的提供了一组“定界”I/O 函数。然而,C 是否提供类似的功能仍不确定。
Java API 函数是:
从版本 3.3.0 开始,Google 通过在 google/protobuf/util/delimited_message_util.h 中引入以下 C 等效项解决了此问题:
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 }
对于那些寻求在 C 中解析大小前缀消息而不使用官方的人库,传输格式如下:
提供的 C 实现包括其他响应中缺少的优化。这些优化确保功能:
以上是C 协议缓冲区定界 I/O:是否有与 Java 等效的函数?的详细内容。更多信息请关注PHP中文网其他相关文章!