2013-04-27 5 views
0
FILE* logfile; 

freopen_s(&logfile, "log.txt", "w", stdout); 

printf("test"); 

fclose(stdout); 

Visual Studio에 이상한 점이 있습니다. 콘솔 앱에서 위의 코드를 실행하면 로그 파일이 잘 작성됩니다. 그러나 Win 앱에서 코드를 실행할 때 로그 파일은 항상 비어 있습니다.stdout을 파일로 리디렉션하지 않음

내가 뭘 잘못하고 있는지 아는 사람이 있습니까?

+1

코드가 잘 보이므로 문제는 창 응용 프로그램을 시작하는 방법입니다. 그 코드도 포함시켜야합니다. –

답변

0

Windows 프로그램에는 콘솔이 연결되어 있지 않습니다. 결과적으로 stdout에 대한 스트림 IO는 아무 효과가 없습니다. 앱을 SUBSYSTEM 스위치를 통해 콘솔 앱으로 변환하거나 SetStdHandle 기능을 통해 stdout에 핸들을 할당 할 수 있습니다.

+0

아하나. SetStdHandle이가는 길 같습니다. 감사. –

관련 문제