0
자식 프로세스를 생성하고 CPU 시스템과 사용자 시간을 인쇄하기를 기다리는 간단한 함수가 있습니다.wait4()와 Rusage가 완료된 자식 프로세스의 CPU 시간을 표시하지 않습니다.
int PrintChildProcessTime(char **arg)
{
pid_t pid;
int status;
struct rusage usage;
if ((pid=fork()) == 0)
{
execvp(arg[0],arg);
perror("Execvp error");
_exit(1);
}
else if (pid > 0)
{
wait4(pid, &status, 0, &usage);
printf ("CPU time: %ld.%06ld sec user, %ld.%06ld sec system\n", usage.ru_utime.tv_sec, usage.ru_utime.tv_usec, usage.ru_stime.tv_sec, usage.ru_stime.tv_usec);
}
else
{
perror("Fork error");
_exit(2);
}
}
건은 여전히 시스템 및 사용자 CPU 시간 0.000000를 보여주고, 내가 **arg
으로 sleep 10
을 전달하고 아이가 끝날 때까지 부모 프로세스가 대기하는 경우에도입니다.
내가 뭘 잘못하고 있니? 도움 주셔서 감사합니다.