![]() |
Создание дочерних процессов
Читаю сейчас книгу по операционным системам Таненбаума и Вудхала. Там приведен такой код:
#define TRUE 1 while TRUE { type_prompt ( ); read_command(command, parameters); if (fork( ) != 0) { /* код родительского процесса */ waitpid(-1, &status, 0); } else { /* код дочернего процесса */ execve(command, parameters, 0) } } и указано, что execve "перемещает образ памяти процесса", или иначе "заменяет весь образ памяти процесса файлом, указанным в первом параметре". Как я понял, при создании дочернего процесса, создается копия образа памяти родительского процесса, разничается лишь PID. В частности, образ памяти дочернего процесса содержит код родительского процесса. Но я думаю, что образ памяти дочернего процесса должен содержать не весь код родительского процесса, а лишь часть его, иначе при его выполнении опять будет выполняться и бесконечный цикл, и уже не нужные type_prompt ( ); read_command(command, parameters);. Я правильно понимаю? |
Ладно, вот ответ )
http://minix3.ru/cgi-bin/yabb2/YaBB.pl?num=1260562900 |
Часовой пояс GMT +4, время: 11:42. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.