셸 - 프로그램 출력을 파일로 리디렉션이 작동하지 않음

셸 - 프로그램 출력을 파일로 리디렉션이 작동하지 않음

프로그램의 출력을 파일로 리디렉션하려고 합니다. 때때로 프로그램은 화면에 몇 줄을 인쇄하고 종료될 때까지 이 작업을 계속합니다. 종료되면 인쇄되는 줄 수는 수천 줄이 됩니다.

리디렉션 명령 없이 프로그램이 실행되면 모든 정보가 화면에 정상적으로 인쇄됩니다. 그러나 >, 1>, 2> 또는 기타 여러 가능성을 사용하려고 하면 두 가지 중 하나가 발생합니다. 출력 파일은 완전히 비어 있거나 처음 30줄만 포함합니다(페이지를 채울 만큼). 또한 "|cat>"을 사용하여 리디렉션을 시도했지만 다시 아무 일도 일어나지 않았습니다.

문제의 원인은 무엇입니까? 저는 우분투를 사용하고 터미널에서 프로그램을 실행하고 있습니다. 이 프로그램은 C++로 컴파일되었으며 "cout"을 사용하여 텍스트를 인쇄합니다.

성공하지 못한 채 사용하려고 시도한 리디렉션의 예입니다.

  1. ./testProgram > 출력.txt
  2. ./testProgram 1> 출력.txt
  3. ./testProgram 2> 출력.txt
  4. ./testProgram &> 출력.txt
  5. ./testProgram > 출력.txt 2>&1
  6. ./테스트 프로그램|cat>output.txt
  7. > 대신 >>를 사용하는 위의 모든 변형에는 동일한 문제가 있습니다.

Obs: 계산하는 데 며칠이 걸릴 수 있으므로 cat output.txt를 사용하여 가끔씩 파일을 살펴봅니다. 그래도 위에서 언급한 것처럼 텍스트의 첫 페이지 정도만 파일에 기록되며 그게 내가 볼 수 있는 전부입니다. 이 텍스트 양은 프로그램을 실행하는 몇 초에 해당하므로 파일을 읽는 것이 문제의 원인은 아닌 것으로 보입니다.

관련 정보