하드 디스크 인 fstest.exe를 테스트하는 도구를 사용하고 있습니다. 명령 줄에서 잘 실행되어 다양한 파일 생성/삭제/변경 작업을 수행하는 데 걸리는 시간을 표시합니다. fstest.exe otherParams
으로 명령 줄에서 실행할 때 일반적인 출력은 다음과 같습니다출력이 콘솔에 나타나지만 파일로 리디렉션되면 사라집니다.
---
CPU Usage: 0.0%
Disk reads/sec: 0
Disk writes/sec: 0
Disk bytes/read: 0
Disk bytes/write: 0
Test duration: 0 milliseconds, 1153 ticks (3507177 ticks/sec)
---
문제는 내가 파일에 출력을 리디렉션 할 때, 그것은 아무것도 표시되지 않는다는 것입니다 :
fstest.exe otherParams > out.txt
가를 생성 비어있는 out.txt 파일. 그렇지 않으면 명령이 잘 실행되고 (실행의 일부로 몇 개의 테스트 파일이 만들어 짐).
어떻게이 응용 프로그램이 출력을 파일로 리디렉션 할 수 있습니까? 필자는 Start-Process를 통해 PowerShell을보다 자세히 살펴 보았습니다. 표준 출력 스트림과 표준 오류 스트림은 모두 비어 있습니다. 내가 해봤
다른 것들 : (. 그 out.txt와 err.txt 모두 빈을 모두 생성)
cmd /c "fstest.exe otherParams > out.txt"
fstest.exe otherParams 2>&1 >> out.txt
fstest.exe otherParams | sort
powershell Start-Process -FilePath .\fstest.exe -ArgumentList @("create2", "-openexisting") -RedirectStandardOutput out.txt -RedirectStandardError err.txt -wait
응용 프로그램이 있는지 여부에 따라 출력을 변경하는 원인이 무엇
그것은 방향이 바뀌었고 파일로 리디렉션 할 수있는 방법이 있습니까?
업데이트 : 나는 소스 코드를 알고있다. 그것은 C++이고 출력은 단지 printf
문장입니다.
프로그램이 정상적으로 종료됩니까? 아니면 신호 인터럽트로 방해하고 있습니까? 버퍼가 플러시되지 않거나 그런 식으로 종료되는 경우 버퍼가 손실되지 않을 수 있습니다. – Gray
@ 그레이 그것은 항상 정상적으로 종료합니다 (반환을 통해, 그리고 종료 코드는 0입니다),하지만 어떤 이유 때문에 파일로 리디렉션 할 때 버퍼를 플러시하지 않습니다 - 콘솔에만 인쇄 할 때. – PotatoEngineer