쉘 리디렉션이 System.Diagnostics.Process 클래스에서 작동하지 않는 이유를 설명해 주시겠습니까? 다음 스 니펫을 사용하여 출력 스트림을 파일로 리디렉션하려고합니다.C에서 stdout을 리디렉션 할 때의 문제 #
Process p = new Process();
p.StartInfo = new ProcessStartInfo();
p.StartInfo.FileName = "java.exe";
p.StartInfo.Arguments = @"> c:\Temp\test.log 2>&1";
p.StartInfo.UseShellExecute = true;
p.Start();
비슷한 코드가 파이썬에서 문제없이 작동합니다. 출력 스트림을 프로그래밍 방식으로 읽는 것이 내 응용 프로그램에서 시작된 프로세스가 많기 때문에 바람직한 해결책으로 보이지 않습니다.
이상 적으로 읽기 전에 시작 이벤트 처리기를 설정해야합니다. 그렇지 않으면 첫 번째 출력물이 누락 될 위험이 있습니다. 예를 보려면 http://stackoverflow.com/questions/415620/redirect-console-output-to-textbox-in-separate-program-c-sharp를 참조하십시오. –