Чтобы временно перенаправить stdout
в файл, я делаю:freopen_s на стандартный вывод вызывает проблемы с GetConsoleScreenBufferInfo на ОС Windows
printf("Before");
freopen_s(&stream, "test.txt", "w", stdout);
printf("During");
freopen_s(&stream, "CONOUT$", "w", stdout);
printf("After");
Это работает, но не делает:
CONSOLE_SCREEN_BUFFER_INFO sbi = {0};
GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &sbi);
Нет больше похоже на работу , Он возвращает false, а GetLastError()
возвращает 6
, что переводится как сообщение «Ручка недействительна». с FormatMessage
.
Любые советы о том, почему дескриптор может быть недействительным? Интересно, что printf
продолжает работать так, как ожидалось, и SetConsoleTextAttribute
работает даже с тем же ручкой.
Это фиксированная моя проблема. Благодаря! – Sydius