Конечно, wait3
и wait4
вы покрыли. В качестве альтернативы (и более переносимого) вы можете использовать getrusage(2)
.
Системные вызовы wait3 () и wait4 () похожи на waitpid (2), но
дополнительно вернуть информацию об использовании ресурсов о ребенке в
структура, указанная rusage
.
Пример: wait3
struct rusage usage;
wait3(&status, 0, &usage);
Пример: getrusage
Конечно, wait3
и wait4
- это просто удобство. Чтобы вы могли использовать getrusage
:
getrusage(RUSAGE_CHILDREN, &usage);
Недостатком является то, что это говорит вам о ресурсах, используемых ВСЕМИ завершенными дочерними элементами.
Итак, как только вы его получите, что вы будете делать с rusage
? struct rusage
имеет следующую форму:
struct rusage {
struct timeval ru_utime; /* user CPU time used */
struct timeval ru_stime; /* system CPU time used */
/* More. */
};