Re[6]: Аналог exec из Unix
От: vao  
Дата: 08.04.04 09:06
Оценка:
Здравствуйте, ДимДимыч, Вы писали:

ДД>Здравствуйте, vao, Вы писали:


vao>>Есть сервер он пускает новым процессом диалог выбора и настройки, при этом сервер регистрирует ProcessId. Из диалога идет запуск ресурсоемкой задачки из некоторго списка. Она замещает процесс с диалогом и общаеться с сервером. Если использовать CreateProces то задачка получаеться с новым ProcessId и сервер ее неузнаёт.


ДД>каким образом задача общается с сервером? может не в идентификаторе процесса дело?

ДД>ведь в приведенном коде:

ДД>

ДД>
ДД>i = fork();
ДД>switch (i)

ДД>{
ДД>case -1:
ДД>perror("LOADSEGY: fork");
ДД>return(0);
ДД>case 0:
ДД>freopen(logname, "w", stdout);
ДД>freopen(errlogname, "w", stderr);
ДД>execvp(*new_argv, new_argv);
ДД>perror("LOADSEGY: execvp");
ДД>_exit(0);
ДД>default:
ДД>waitpid(i, &stat, 0)
ДД>}


ДД>execvp() вызывается из дочернего процесса, а родительский ждет его завершения.


В процессе загруженном execvp() делаеться еще один execvp() зависящий от выбора пользователя.
Общаеться по очереди сообщений,одновременно может жить несколько таких процессов чтобы их различать используеться идентификатор процесса.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.