Могут ли разные потоки параллельно работать с разными консольными окнами?
Имеется 2 потока. Необходимо что бы каждый из них работал в отдельном консольном окне.
В то время как в 1 консоли будут отображаться логи, во 2 консоли будет интерфейс для взаимодействия с пользователем (ввод/вывод, switch/case).
Можно ли реализовать описанное и каким образом?
UPD: OS Windows 7
tail это стандартная программка под Linux, которая выводит на экран последние строки текстового файла. с ключом -f, после вывода файла на экран она не завершается, а ждет, что файл будет дописан и выведет новые строки из него.
Под виндовс также есть реализация tail, unxutils.sourceforge.net
Вы же пишете программу - напишите свою реализацию tail (открыть файл, считать строку, отобразить на экран и так до EOF, после чего sleep на секунду и повторить начиная со считать строку)
Да и вообще что-то мы не туда забрели, просто откройте еще одну консольное окно. и выводите туда свой лог. А то привычка считывать лог из файла похоже нас подвела.
Сергей: я бы тоже хотел избежать излишнего сохранения в файл. но как в новом потоке мне открыть новое консольное окно. даже если в новом потоке я укажу system("cmd");, новый поток все равно будет писать в прежнее окно.
Alexiuscrow, потому что с приложением может быть ассоциирована только одна консоль.
Вообще говоря, не очень понятно, почему вы отказываетесь от использования стандартных средств, и пытаетесь сгородить какой-то велосипед, тут назревает вопрос - вам шашечки или ехать?
Если ехать, то просто скачиваете tail по ссылке выше и поставляете вместе с вашем приложением. В конце концов использованием готовых решений - это хорошо и правильно.
А если шашечки то вы не по адресу, потому что тут сервис для тех, кому ехсть) Ладно, как вариант, можете при старте вашего приложения форкаться с детачем ( stackoverflow.com/questions/14958276/createprocess... ), при этом дочернее приложение может использоваться как вторая консоль, а взаимодействовать с ним можете через любой канал IPC. Но это извращение и никто так не делает.
Alexiuscrow, я говорю про стандартное средство решения задачи, а не "стандартное средство Windows 7". Потому что нет никакого смысла обсуждать последнее.
Ваша программа тоже не является "стандартным средством Windowd 7", так что по вашей логике ее тоже нельзя использовать :)
Кстати, MSVCP и MSVCRT тоже не являются стандартным средством Windows 7, так что не используйте в своей программе printf, malloc, или не дай бог, new - части соответствующих библиотек.