두 프로그램의 표준 출력 리디렉션

두 프로그램의 표준 출력 리디렉션

저는 C++ 코드(prog2)에서 메모리 검사 도구(prog1)를 실행하고 있는데 두 도구 모두 매우 자세한 출력을 제공합니다. 일부 오류를 추적하려면 이 출력을 파일에 저장해야 합니다.

표준 출력을 파일로 리디렉션해 보았습니다.

prog1 prog2 > outfile.txt

그러나 이것은 prog2의 출력을 포함하는 파일을 제공하는 동시에 prog1의 출력은 여전히 ​​터미널로 전송됩니다.

두 출력 모두 파일로 이동하도록 지정하는 방법을 아는 사람이 있습니까? 좋다 (prog1 prog2) > outfile.txt?

답변1

아마도 prog1출력은 표준 오류에 기록될 것입니다. 두 출력을 모두 파일로 리디렉션할 수 있습니다.

prog1 prog2 > outfile.txt 2>&1

또는 다음과 같은 방법으로 출력을 분할할 수 있습니다.

prog1 prog2 > outfile.txt 2> errors.txt

개인을 가리지 않습니다프로그램' 출력, 출력 채널을 분리합니다. 바라보다쉘의 제어 및 리디렉션 연산자는 무엇입니까?더 알아보기.

문서를 보면 prog1출력을 명명된 파일에 저장하도록 지시하는 옵션을 찾을 수 있습니다. 예를 strace들어 ,

strace -o strace.txt prog2 > outfile.txt

strace출력을 저장 하고 strace.txt모든 것을 표준 출력에 씁니다 outfile.txt.

관련 정보