我试图找到fork()系统调用的运行时间.每个子进程都需要立即退出,并且父进程需要在创建下一个子进程之前对每个子进行wait().我还想使用名为time的
shell内置命令来测量程序的执行时间.
到目前为止我有这个代码,但不确定如果我做得对.
#include
#include
#include
#include
int global = 100;
int main(int argc, char** argv)
{
int local = 5;
pid_t pid;
pid = fork();
if (pid < 0) {
fprintf(stderr, "error -- failed to fork()");
return 1;
}
if (pid > 0) {
int child_ret;
waitpid(pid, &child_ret, 0);
printf("parent -- global: %i, local: %i\n", global, local);
printf("parent -- child exited with code %i\n", child_ret);
} else {
global++;
local++;
printf("child -- global: %i, local: %i\n", global, local);
exit (0);
}
}