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


Автор: Hromonin 9.10.2009, 15:12
Каким образом из дочернего процесса чтонибудь вывести в консоль родительского? 
Допустим необходимо чтобы процесс proc вывел в исходный процесс строку blablabla.
Код

void main()
{
   WINDOW *wnd;
   //всякие там атрибуты и т.д.
  if(fork()==0)
execl("proc", " blablabla", NULL);
}

/* proc */
void main()
{
   WINDOW *wnd;
   wprintw(wnd,argv[1]); 
   wrefresh(wnd);
}




После вызова процесса proc собсно окно очищается но ничего не происходит. Данная конструкция вызова дочернего процесса как я понимаю аналогична CreateProcess из Windows. Проблема наверное в том что как-то надо сообщить proc о созданном в родительском процесса wnd, тоесть епредать консоль родительского процесса дочернему. Каким образом это сделать? Хотя возможно, что я просто не совсем понял саму конструкцию процессов в Linux)

Автор: MAKCim 10.10.2009, 10:04
stdin, stdout, stderr наследуются лочерним процессом
ничего делать не надо

Автор: Hromonin 10.10.2009, 13:55
Однако ncurses ненаследуется видимо... В этом то и проблема.

Автор: Vaulter 10.10.2009, 18:46
вероятно ncurses не выводит в stdout а в stdscr

Добавлено через 47 секунд
вероятно stdscr стоит скопировать в дочерний при форке

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