이것은 약간의 컴퓨팅 시스템 101 질문처럼 보입니다. 그러나 나는 혼란 스럽습니다.내부적으로 캡처/리디렉션 stdout?
C/C++ 프로젝트 A의 기존 코드를 내 프로젝트 B에 통합하려고합니다. A와 B 모두 단일 실행 가능 스레드 프로세스로 링크됩니다. 프로젝트 A의 코드는 출력을 위해 printf를 광범위하게 사용합니다. 이것은 괜찮지 만, 그 출력을 내 버퍼에 포착하고 싶습니다. printf 호출이 일단 쓰여지면 stdout에서 읽을 수있는 방법이 있습니까? 프로세스 나 파이프를 포크 할 수 없습니다. 그리고 poll() stdout이나 dup()에 대한 내 노력은 성공하지 못했습니다. (나는 여기서 뭔가 잘못했을 수도 있습니다.)
A의 출력을 B로 파이프 할 수 없습니까? ('$ commandprompt ./A |./B'). 둘 다 실행 파일이고 A가 B보다 먼저 실행될 수 있다고 가정합니다. –
seprate 실행 파일로 유지하고 런타임시 파이프를 연결하는 것처럼 들리는 것처럼 들립니다. –
불행히도, 아니오. A와 B는 하나의 exec로 링크되어야합니다. – MapMaker