usage()以秒或毫秒为单位测量?

时间:2009-09-28 01:26:59

标签: timer getrusage rusage

您好我正在尝试获取应用程序被shell分叉的系统时间和用户时间。我只是不确定我会得到什么样的时间,秒?毫秒?有人知道吗?

printf("System time: %ld.%06ld sec\n",usage.ru_stime.tv_sec, usage.ru_stime.tv_usec);
printf("User time:   %ld.%06ld sec\n\n",usage.ru_utime.tv_sec, usage.ru_utime.tv_usec);

这是我得到的结果的样本。我有时间作为秒,但我不确定

#   PID Name    System Time User Time                 
*****************************************************
1   12420   firefox 0.148009 sec    0.816051 sec
2   12429   gimp    0.444027 sec    2.512157 sec
3   12442   clear   0.000000 sec    0.000000 sec

1 个答案:

答案 0 :(得分:1)

你得到的不是秒,也不是毫秒,也不是微秒 - 你得到struct timeval。这是一个由两个字段组成的结构:tv_sec给出整秒,tv_usec给出微秒;后者的价值不到一百万(所以它总是不到一秒)。

所以这个API支持的分辨率是微秒;你应该在print语句中使用的单位是秒 - 所以你已经正确地做了。