>[оверквотинг удален]
>/* proc */
>void main()
>{
> WINDOW *wnd;
> wprintw(wnd,argv[1]);
> wrefresh(wnd);
>}
>При вызове proc субственно "затирается" консоль родительского процесса. Я так понимаю надо
>как-то передать индефикатор консоли родительского дочернему. В windows это легко делалось
>через GetStdHandle(STD_OUTPUT_HANDLE). Как же это сделать в Linux? По моему, вы что-то путаете. Если вы хотите просто вывести из дочернего процесса строчку на терминал, то это можно сделать просто функцией printf() - она выводит на standard output, чей файл-дескриптор наследуется дочерними процессами - все открытые файл-дескрипторы так наследуются. Соответственно, файл-дескриптор standard output'a дочернего процесса это тот же файл-дескриптор что и файл-дескриптор standard output'a родительского процесса, и если у родительского процесса это дескриптор его терминала, значит и у дочернего процесса это дескриптор того-же терминала.
Но если вы в родительском процессе используете curses, создаете текстовые окна curses на терминале, и хотите что бы дочерний процесс использовал curses и писал в те окна curses что были созданы родительским процессом, боюсь, так не выйдет. curses в дочернем процессе ничего не знает о curses в родительском процессе, и пытается полностью контролировать терминал по своему. Что, понятно, конфликтует с тем фактом что curses в родительском процессе то-же хочет полностью контролировать терминал.
Мораль: терминал должен контролировать один процесс. Например, родительский. И если дочерний процесс хочет что-то вывести в окно на этом терминале, он должен культурно попросить об этом хозяина терминала - родительский процесс. Например, можно открыть pipe между двумя процессами (или использовать какое-то другое средство inter-process communication) и создать протокол передачи данных от процесса который хочет что-то сказать в окно, процессу - хозяину терминала.