A saída aparece no console, mas desaparece quando redirecionada para o arquivo

Eu estou usando uma ferramenta que testa discos rígidos, fstest.exe. Ele roda bem a partir da linha de comando, exibindo quanto tempo demorou para executar várias tarefas de criação / exclusão de arquivos / separação de arquivos. A saída usual, quando executada a partir da linha de comandofstest.exe otherParams, se parece com isso:

---
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)
---

O problema é que quando eu redireciono a saída para o arquivo, ele não exibe nada:

fstest.exe otherParams > out.txt cria um arquivo out.txt vazio, mesmo que o comando seja executado corretamente (e criou alguns arquivos de teste como parte de sua execução).

Como posso forçar este aplicativo para redirecionar a saída para um arquivo? Eu tentei examiná-lo mais de perto com o PowerShell (via Start-Process), e ambos os fluxos de saída padrão e de erro padrão estão vazios.

Outras coisas que eu tentei:

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

(Isso cria tanto out.txt e err.txt, ambos vazios.)

O que faria com que um aplicativo alterasse sua saída, dependendo de ser redirecionado, e há alguma maneira de redirecioná-lo para o arquivo?

UPDATE: Eu tenho minhas mãos no código-fonte. É C ++, e a saída é simplesprintf afirmações.

questionAnswers(3)

yourAnswerToTheQuestion