stdin에서 읽은 프로그램 출력 리디렉션

stdin에서 읽은 프로그램 출력 리디렉션

출력을 리디렉션하고 싶을 때가. 출력내가 사용할 프로그램

./a.out > output.txt

프로그램이 다음을 읽을 때는 작동하지 않습니다.표준 입력. 이 경우 출력을 어떻게 리디렉션하시겠습니까?

나는 단지 사용할 수 있습니다

./a.out < inputs.txt > output.txt

나는 똑같은 일을 할 수 있지만 입력을 읽을 수 있습니다표준 입력?

편집: 작동한다는 것을 깨달았지만 모든 것이 파일에 저장되기 때문에 프롬프트가 표시되지 않습니다.출력.txt. 따라서 유일한 문제는 프롬프트를 보는 것입니다.표준 입력동시에 리디렉션을 유지하십시오.

답변1

stderr한 가지 옵션은 대신 프롬프트를 작성하는 것입니다 stdout. 터미널에서는 표시되지만 에서는 표시되지 않습니다 output.txt.

또 다른 옵션은 출력에 리디렉션을 사용하지 않고 출력 파일 이름을 매개변수로 전달하고 파일을 직접 여는 것입니다. 그런 다음 stdout프롬프트에 따라 사용할 수 있습니다 . (이것이 더 유연합니다. 파일에만 보낼 내용, 화면에만 보낼 내용, 두 가지 모두에 보낼 내용을 결정할 수 있습니다.)

코드를 변경할 수 없는 경우 유일한 옵션은 tee다른 유틸리티를 사용하는 것입니다. 버퍼링이 문제가 될 수 있습니다.stdbuf도움이 될 수도 있습니다.

관련 정보