Я делаю проект с использованием библиотеки SDL.
Я заметил, что stdout и stderr были перенаправлены на 2 файла: stdout.txt и stderr.txt.
Мне удалось перенаправить потоки обратно на платформу Windows, но я просто не могу сделать это для платформ Unix...
void redirectSDLStreams () {
#ifdef _WIN32
freopen("CONOUT$", "w", stdout);
freopen("CONOUT$", "w", stderr);
#elifdef __unix__ // Not sure about it tho
// Code for Unix
#endif
}
Я пытался:
printf("Ok from stdout\n") // Prints something
freopen("/dev/tty", "w", stdout);
printf("Ok from /dev/tty\n") // Prints nothing
а также:
printf("Ok from stdout\n") // Prints something
freopen("/dev/stdout", "w", stdout);
printf("Ok from /dev/stdout\n") // Prints nothing
Но оба потерпели неудачу на Fedora 17...
Есть идеи?
Спасибо !
freopen("/dev/tty", "w", stdout);
это нормально. Однако SDL никогда не возобновлял stdout/stderr на linux.
SDL 1.2 сделал это на окнах и, в зависимости от конфигурации, на mac os. SDL2 упал, и теперь он никогда не перенаправляет вывод.