2010-07-16 3 views
0

C에서 직렬화 메커니즘을 구현하는 효율적인 방법을 찾고 있습니다. 예를 들어 JSON에 데이터를 저장하는 것이 간단하고 다시 초기화하는 것이 간단 할 것입니다. 파싱하는 동안 모두.효율적인 C 객체 직렬화 메커니즘을 찾고 있는데

하지만 가능한 경우 (또는 그 가치가) 그냥 내 구조체 (동적으로 할당 된 데이터 포함), 모든 데이터 및 모든 포인터를 버퍼로 변환 할 수 있습니다 쓸 수 궁금하네요, 그래서 배치 할 수 있습니다. 그 버퍼는 파일에 저장됩니다. 그런 다음 파일을 읽고 내용을 검색하고 malloc 파일 내용의 크기 위치를 찾은 다음 해당 위치에 내용을 배치합니다.

모든 포인터를 일종의 로컬 포인팅 구성표로 변환하고 모든 구조를 버퍼에 적절하게 배치하여 해당 포인터와 일치시킬 수 있다고 생각합니다. 그 같은 써드 파티 시리얼 라이저가 존재하는지, 또는 이것을 구현할 가치가 있는지 궁금합니다.

답변

3

당신은 프로토콜 버퍼로 볼 수 있습니다 : http://code.google.com/p/protobuf/, 그들은 단지 첫 번째 (직렬화 된 데이터를 디버깅) 그것을 가장 쉽고 사용자가 읽을 수있는 방법을 내 경험, c tool support

그러나 괜찮은 있습니다. 나중에 변경할 필요가 있음을 염두에두고 디자인하십시오.

그렇다면 디스크 또는 속도 제한이 절대적으로 긍정적 인 경우 더 나은 무언가로 전환해야합니다. 근본적으로 (거의) 모든 것이 마지막으로 최적화됩니다.

+0

이 내용을 확인해 보겠습니다. 내가 뭘 찾고있는 것 같아! – lxe