Определить область разделяемой памяти между родителем и потомком после того, как дочерний процесс запустит exec () - PullRequest
0 голосов
/ 18 октября 2019

Я студент-разработчик и новичок в языке программирования Си. У меня есть задача, и я не нашел четкого решения в соответствии с моим уровнем. Я хочу запустить функцию exec () в дочернем процессе. Я создал parent и child с помощью fork (). Все нормально. Я знаю, что это два разных процесса. Мне нужно отметить время начала родительского процесса. Перед тем, как дочерняя команда выполнит команду exec (), мне нужно определить область разделяемой памяти, и время запуска должно быть внутри области разделяемой памяти. Когда дочерний процесс завершен, мне нужно вычислить время начала и окончания, используя метод gettimeofday (). Как я могу определить общую память между родителем и дочерним устройством и вычислить временной интервал, если дочерний процесс запустил exec ()?

Мой пример кода здесь:

#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>

void  ChildProcess(void);                /* child should work exec() command family */
void  ParentProcess(void);               /* parent process prototype */

void  main(void)
{
     pid_t  pid;

     pid = fork();
     if (pid == 0){
          ChildProcess();
     }
     else{
          wait(NULL);
          ParentProcess();
     }
}

void  ChildProcess(void)
{
     // something
     printf("   *** Child process ***\n");
}

void  ParentProcess(void)
{    
     // something
     printf("*** Parent process  ***\n");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...