0
디버깅을 위해 stdout을 명명 된 파이프로 리디렉션하는 스크립팅 엔진이 있습니다. 아래의 코드는 Visual Studio 6부터 작동하지만 VS2015로 컴파일 할 때 더 이상 작동하지 않습니다. 오류는 발생하지 않지만 출력은 명명 된 파이프 대신 콘솔에 계속 작성됩니다. VS2012에서이 응용 프로그램을 컴파일하면 예상대로 작동합니다.Visual Studio로 컴파일 할 때 콘솔 또는 stdout을 명명 된 파이프로 리디렉션하지 않습니다. 2015
hNamedPipe는 콘솔 텍스트를 리디렉션하려는 파이프입니다.
int hCrt = _open_osfhandle((intptr_t)hNamedPipe, _O_TEXT);
FILE *hf = _fdopen(hCrt, "w");
*stdout = *hf;
setvbuf(stdout, NULL, _IONBF, 0);
어떻게 비주얼 C++ V14 플랫폼 도구 세트로 컴파일 할 때 내가 명명 된 파이프에 표준 입출력을 리디렉션 할 수 있는가? 제임스 McNellis에
확실하지,하지만,이 같은 수정'stdout'은 비린내가 보인다, 나는 이전 버전에서 "우연히"일을 가정합니다. –
이것은 ['freopen()'] (https://linux.die.net/man/3/freopen)을 사용해야하는 것과 같습니다. – unwind
"conout $"가 포함 된 freopen()도 사전 시각적 스튜디오 2015에서 작동합니다. – NTDLS