2014-05-25 2 views
0

stson-out 일부 json 형식의 텍스트를 출력하는 하위 프로세스 (fork/exec - aka the child을 사용하여 작성)를 처리하고 있습니다.json 형식의 텍스트 문자 열을 읽는 방법

부모 프로세스가 자식 파이프를 가지고 있는데, 부모 프로세스는 자식 프로세스를 한 번에 std-out (getc 사용)으로 읽습니다.

부모가 blocking waitpid 함수를 사용하고 있지 않지만 io 파이프에있는 문자가 있는지 계속 확인합니다.

- 모든 것을 여기까지 최대가 구현하고 기능 - 나는 json으로 C++ JSON 파일을 읽을 수 있습니다 라이브러리를 사용하고

.

분명히 절반의 json 파일을 읽을 수는 없습니다. 그리고 부모는 한 번에 하나의 문자를 자식으로부터 읽는 것이므로, 첫 번째 유효한 json 객체가 탐지 될 때까지 어떻게 문자를 추적 할 수 있습니까?

내가 명확하지 않으면 알려주므로 알려주십시오.

답변

0

"처음 유효한 json 개체"는 문제가 있습니다. JSON은 하나의 최상위 객체 만 허용하므로 EOF까지 제대로 읽을 수 있어야합니다 (파이프를 제대로 닫았다 고 가정).

0

파서가 스트리밍을 지원하지 않으면 다른 라이브러리를 고려하십시오.

yajl은 JSON을 스트리밍하는 ANSI-C 파서이므로 C++ 코드에서 작동해야합니다.

json.org 홈페이지 하단에 다른 C 및 C++ 도구가 나열되어 있습니다. 그들 중 한 명이 더 잘 작동 할 수도 있습니다.