Protobuf C+serialize 에서 char*까지 의 실현 방법 분석
C++버 전의 protubuf 는 몇 가지 serialize 와 unSerialize 방법 이 있 습 니 다.
방법 1:
공식 demo 프로그램 은
// Write the new address book back to disk.
fstream output(argv[1], ios::out | ios::trunc | ios::binary);
if (!address_book.SerializeToOstream(&output)) {
cerr << "Failed to write address book." << endl;
return -1;
}
// Read the existing address book.
fstream input(argv[1], ios::in | ios::binary);
if (!input) {
cout << argv[1] << ": File not found. Creating a new file." << endl;
} else if (!address_book.ParseFromIstream(&input)) {
cerr << "Failed to parse address book." << endl;
return -1;
}
위 에서 fstream 을 사용 하여 데이터 시퀀스(반 시퀀스)를 디스크 파일 에 기록 합 니 다.char*로 정렬 하고 socket 을 통 해 전송 하려 면 다음 을 사용 할 수 있 습 니 다.
방법 2:
int size = address_book.ByteSize();
void *buffer = malloc(size);
address_book.SerializeToArray(buffer, size);
방법 3:
ostringstream ,
std::ostringstream stream;
address_book.SerializeToOstream(&stream);
string text = stream.str();
char* ctext = string.c_str();
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Protobuf 가 Cmake 에서 의 정확 한 사용 방법 에 대한 상세 한 설명위 와 같이 bar 파일 은 foo 를 참조 하고 이 두 개 는 한 디 렉 터 리 에 없습니다.protobuf 를 직접 사용 하면generate_cpp 가 생 성 되면 바로 오류 가 발생 합 니 다.(이 예 는 Yu...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.