C 内核空间中的进程运行时

C 内核空间中的进程运行时,c,linux,linux-kernel,C,Linux,Linux Kernel,我试图在内核空间或用户空间中获取给定进程的运行时。 不管怎样,这就是我要做的 //suppose struct task_struct *task has a direct link to pid 1 cputime_t ktime = task->cputime_expires.stime; cputime_t utime = task->cputime_expires.utime; cputime_t total = ktime + utime; printk(KERN_INFO

我试图在内核空间或用户空间中获取给定进程的运行时。 不管怎样,这就是我要做的

//suppose struct task_struct *task has a direct link to pid 1
cputime_t ktime = task->cputime_expires.stime;
cputime_t utime = task->cputime_expires.utime;
cputime_t total = ktime + utime;
printk(KERN_INFO "TOTAL [%lu]",total); // 0 

为什么输出为零

我们将从
task->utime
task->stime
等获取进程运行时

检查函数
帐户\u进程\u勾选()

您提到的一个,即
task->cputime\u expires
用于
timer\u settime()
系统调用,为每个进程计时器配置POSIX