| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > стандартное устройство вывода |
| Автор: TeeT 22.12.2005, 17:42 |
| Можно ли менять стандартное устройство вывода, но не явно? (вывод в файл без функций работы с файлом). В смысле экран - stdout определен как FILE, а пишем мы на него printf-ом, иоли я чего то недопонимаю |
| Автор: TeeT 22.12.2005, 18:00 | ||||
Из stdio.h определение устройств
а вот определение функции
|
| Автор: nworm 22.12.2005, 20:26 |
| В консоли linux-а можно так приложения выполнять: prog > outfile вместо prog и printf пишет в файл outfile, после выполнения можно просматривать результаты (может это и не то, что здесь требуется |
| Автор: TeeT 23.12.2005, 09:25 | ||
в винде так тоже можно. Слышал о конкурсе IOCCC, проводится каждый год, ну так вот у меня прога есть с конкурса она создает три файла притом там нет ни одного fopen-a, fclose-a ну и так далее... а исходник совсем непонятный |
| Автор: azesmcar 23.12.2005, 09:49 |
| TeeT При запуске программы она автоматически создает три файловых дескриптора.. stdin, stdout и stderr когда ты делаешь fopen создается очередной дескриптор...и их все можно спокойно менять местами в линуксе функции dup() и dup2. Причем тоже самое (в линуксе, в виндоузе не знаю, не пробовал) можно сделать с любым дескриптором...например сокет. Можешь перенаправить весь stdin в socket...и все что получае программа через stdin будет отправляться по сети тому с кем присойденен твой сокет... |
| Автор: TeeT 23.12.2005, 10:44 | ||
| azesmcar Спасибо, интересно почему так не работает
интересно как именно работает dup2, гда можно достать исходник? |
| Автор: Romikgy 23.12.2005, 10:53 |
| SetStdHandle юзай |
| Автор: azesmcar 23.12.2005, 11:11 | ||||
Это код под юникс, под виндоуз не могу, у меня его нет |
| Автор: TeeT 23.12.2005, 15:04 |
| azesmcar Пасибо Если хочешь вот есть компилер хороший: http://www.bloodshed.net/dev/devcpp.html ну или сразу Dev-C++ 5.0 beta 9.2 (4.9.9.2) (9.0 MB) with Mingw/GCC: http://prdownloads.sourceforge.net/dev-cpp/devcpp-4.9.9.2_setup.exe |