C와 Java를 모두 사용하여 파일에서 여러 프로토콜 버퍼 메시지를 읽고 쓰려고 할 때 다음이 발생했습니다. 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!