Timer rusage()以秒或毫秒为单位?

Timer rusage()以秒或毫秒为单位?,timer,getrusage,rusage,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); 这是我得到的结果样本。我有秒

嗨,我正在尝试获取由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

您得到的不是秒、毫秒或微秒,而是
struct timeval
。这是一个由两个字段组成的结构:
tv_-sec
给出整秒,
tv_-usec
给出微秒;后者的值小于一百万(因此它始终是一秒钟的一小部分)

所以这个API支持的分辨率是微秒;在print语句中应该使用的单位是秒,因此您已经正确地执行了