提交 cc2a8228 编写于 作者: R Rich Felker

cleanup cruft left from when kernel and user time_t disagreed

上级 52874c82
#define _GNU_SOURCE
#include <sys/wait.h>
#include <sys/resource.h>
#include "syscall.h"
pid_t wait4(pid_t, int *, int, struct rusage *);
pid_t wait3(int *status, int options, struct rusage *usage)
{
return wait4(-1, status, options, usage);
......
#define _GNU_SOURCE
#include <sys/wait.h>
#include <sys/resource.h>
#include <string.h>
......@@ -5,14 +6,5 @@
pid_t wait4(pid_t pid, int *status, int options, struct rusage *usage)
{
pid_t ret = syscall4(__NR_wait4, pid, (long)status, options, (long)usage);
/* Fixup kernel time_t... */
if (usage) {
long kusage[4];
memcpy(kusage, usage, sizeof kusage);
memmove((struct timeval *)usage + 2, (long *)usage + 4, sizeof *usage - 2*sizeof(struct timeval));
usage->ru_utime = (struct timeval){ kusage[0], kusage[1] };
usage->ru_stime = (struct timeval){ kusage[2], kusage[3] };
}
return ret;
return syscall4(__NR_wait4, pid, (long)status, options, (long)usage);
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册