Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Программирование под Unix/Linux > Запуск программы из другой консоли


Автор: 9STREB 29.11.2016, 21:28
Здравствуйте, подскажите пожалуйста, каким образом можно запустить из программы (которая запущена из-под консоли 1) запустить программу (или bash скрипт) в другой консоли (консоль 2)?

Автор: xvr 29.11.2016, 22:11
Функция https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms682425(v=vs.85).aspx, параметр https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms684863(v=vs.85).aspx, флаг CREATE_NEW_CONSOLE
 

Автор: Olej 30.11.2016, 14:48
Цитата(xvr @ 29.11.2016,  22:11)
Функция https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms682425(v=vs.85).aspx, параметр https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms684863(v=vs.85).aspx, флаг CREATE_NEW_CONSOLE

CreateProcess в разделе форума "C/C++: Программирование под Unix/Linux"?
Пикантно... smile 
Пикантно... smile 

Автор: xvr 30.11.2016, 14:55
Пардон, не обратил внимания на раздел.

В linux'е придется запускать другую консоль (ибо в нем нет встроенных в систему консолей, а есть внешние программы) с вашей программой.

Например так: system("xterm -e <script> <arguments>... &")

Автор: 9STREB 30.11.2016, 16:28
под консолью я подразумевал, виртуальный терминал (например который открывается  ctrl+alt+Fn) 

Автор: Olej 30.11.2016, 18:52
Цитата(9STREB @ 29.11.2016,  21:28)
Здравствуйте, подскажите пожалуйста, каким образом можно запустить из программы (которая запущена из-под консоли 1) запустить программу (или bash скрипт) в другой консоли (консоль 2)?

См. в сторону "псевдотерминал", man 4 pts, http://www.opennet.ru/man.shtml?topic=pts&category=4&russian=0

Откройте новый терминал (или в консоли):
Код

$ tty
/dev/pts/19

Из другого терминала/консоли:
Код

$ ls -l > /dev/pts/19

И будет вам счастье. smile 

Автор: 9STREB 30.11.2016, 21:32
Цитата(Olej @ 30.11.2016,  18:52)
Цитата(9STREB @ 29.11.2016,  21:28)
Здравствуйте, подскажите пожалуйста, каким образом можно запустить из программы (которая запущена из-под консоли 1) запустить программу (или bash скрипт) в другой консоли (консоль 2)?

См. в сторону "псевдотерминал", man 4 pts, http://www.opennet.ru/man.shtml?topic=pts&category=4&russian=0

Откройте новый терминал (или в консоли):
Код

$ tty
/dev/pts/19

Из другого терминала/консоли:
Код

$ ls -l > /dev/pts/19

И будет вам счастье. smile

Это получается перенаправление вывода, а мне надо например так:
во 2 консоле я зашел в cd test например
а в 1 когда нарпимер пишу ~$ ls -l >dev/tty2 он отобразил не директорию ~ а то что находится в ~/test

Автор: Olej 30.11.2016, 22:44
[QUOTE=9STREB,30.11.2016,  21:32][QUOTE=Olej,30.11.2016,  18:52]
Цитата(9STREB @ 29.11.2016,  21:28)

Это получается перенаправление вывода, а мне надо

Это не получается перенаправление вывода.
А в том, что вам надо, разбирайтесь дальше сами... с /dev/pts/

Автор: Olej 22.12.2016, 18:05
Цитата(9STREB @ 30.11.2016,  21:32)

Это получается перенаправление вывода, а мне надо например так:
во 2 консоле я зашел в cd test например
а в 1 когда нарпимер пишу ~$ ls -l >dev/tty2 он отобразил не директорию ~ а то что находится в ~/test

Такого быть не может!
У вас может быть открыто до 64 виртуальных терминалов /dev/tty0 - /dev/tty63, но каждый из них - это независимая терминальная сессия, и у каждой из них установлен свой текущий рабочий каталог.  

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)