2010-03-10 4 views
2

C++에서 몇 가지 시뮬레이션 프로그램을 작성하고 출력/입력을 파이프 (최상의 솔루션은 아마도 C++ 스트림을 사용하는 것이므로)에 연결하려고합니다.파이프를 통한 직렬 처리

일부 개체를 직렬화하고 싶습니다 (예 : 시뮬레이션 출력/입력은 텐서와 행렬입니다). 이 문제를 어떻게 처리해야합니까? 나는 직렬화 + 구글 파이프에 대한 몇 시간 동안 주위를 검색하지만 정말 이것에 대해 아무것도 찾을 수 없었다 ...

시작 지점에 대한 도움말? 예를 들어 부스트/직렬화를 사용하여 파이프로 객체를 교환하는 것이 쉬운가요? 일반적으로 직렬화가 텍스트 기반 인 경우 (반올림 오류를 피하기 위해 십진수가 아닌 16 진수 값을 전송하는 경우) 기쁘게 생각합니다. 따라서 출력 스트림을 텍스트 파일로 리디렉션하고 분할하는 등의 작업을 수행 할 수 있습니다. 아마도 다른 프로그램에서 내 시뮬레이션을 작성하십시오 ...

모든 대답은 Thx!

+2

나쁜 생각, 확실히 당신은 부동 소수점 값을 사용하고 있습니까? 리디렉션하려면 텍스트로 변환해야합니다. 텍스트 표현은 미묘한 반올림 오류를 유발합니다. 대신 바이너리로 데이터를 저장할 수 있도록 파일을 사용하십시오. 너에게도 많은 일을 절약 해 준다. –

+0

당신 말이 맞아요. 나는이 문제를 피할 수있는 10 진수가 아닌 16 진수 값에 대해 생각하고 있다고 언급하는 것을 잊었습니다. – user290494

답변

2
+0

+1 Google 프로토콜 버퍼. 이것은 Java 또는 Python으로 시뮬레이션을 작성하기로 결정한 경우 특히 유용합니다. – leedm777

+0

thx .. 나는이 두 라이브러리에 대해 몰랐다. 특히 Google 도서관은 나에게 호소력을 발휘합니다. Thrift는 내가 생각하는 약간의 문서화가 부족합니다. 또한 다소 "단순한"문제에 대한 과잉 공격 일 것입니다. 먼저 Google 라이브러리를 사용해 보겠다. 다른 한편으로는 일종의 유효성 검사를 사용하여 깨달았습니다. 직렬화없이 직접 시도해 보는 것이 가장 좋습니다. 그게 더 합리적이라면 나는 여기에 올릴 것이다. – user290494