Я студент-разработчик и новичок в языке программирования Си. У меня есть задача, и я не нашел четкого решения в соответствии с моим уровнем. Я хочу запустить функцию 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");
}