내 프로그램에서 std :: cout 및 std :: cerr로 출력되는 출력을 생성합니다. 내가C++에서 생성 된 cerr 및 cout이 Ubuntu에서 동일한 파일로 리디렉션됩니다.
./a.out <source> &> <target>
같이 일반적으로 테스트 파일을 실행하면 대상은 ./a.out에 의해 생성 된 순서대로 출력의 두 가지 유형을 캡처합니다. 간단한 단위 테스트 프레임 워크에 대한 출력의 테스트를 자동화하려고 할 때
, 나는 떠들썩한 파티 스크립트에서 위의 구현 :`rm $OUT_NAME`
`./a.out $NEW_UNIT &> $OUT_NAME`
을 (명백한 변수 이름). cout으로 보내지는 출력은 잘 인쇄됩니다; 그러나 cerr로 전송 된 것은 잘못 인쇄됩니다 (일부는 인쇄되고 인쇄는 오류없이 중지됨). 혹시 궁금한 점이 있으시면 먼저 'rm'을 추가하여 구버전에 덮어 쓰기/덧붙이기에 별다른 문제가 없음을 확신 할 수 있습니다.
아이디어가 있으십니까?
내 시스템 : 우분투 12.04.
두 번째 부분은 stdout을 stderr에 병합하는 것을 의미할까요? –
정확합니다. @ Till Kolditz. 고쳤다. 감사. – unxnut