파일을 사용하여 stdout 및 stderr의 출력을 리디렉션하려고합니다. 나는 freopen을 사용하고 있으며 올바른 디렉토리에 파일을 생성하지만 파일은 비어 있습니다. stdout과 stderr를 리다이렉트하는 코드를 주석 처리하면 출력이 콘솔에 표시됩니다. I 메인으로하고 있지만 못해 파일을 작성하여 출력한다 억제제없이에서 printf ("I가 사용") 배치 한freopen이 지정된 파일에 쓰지 않습니다.
freopen(stderrStr.c_str(), "a+", stderr); //where stderrStr and stdoutStr are the path/file name
freopen(stdoutStr.c_str(), "a+", stdout);
fclose(stdout);
fclose(stderr);
: 여기
코드이다.
stdout 또는 stderr를 닫지 마십시오. 프로그램 종료시 자동으로 닫힙니다. –
@dark_charlie http://www.cplusplus.com/reference/clibrary/cstdio/freopen/ 에서 예제를 얻었습니다. 그리고 나는 그 긴밀한 선언문을 주석 처리했습니다. – user1185853