The man page for getrusage says that the frequency of the statistics
clock is given by sysconf(_SC_CLK_TCK).
The source code to /usr/bin/time uses a function 'getstathz' to get
the frequency of the statistics clock which is does using sysctl
and KERN_CLOCKRATE
On my system the first returns 100Hz and the second 128Hz!!!
Now, is this:
1) A bug in /usr/bin/time
2) A bug in sysconf(_SC_CLK_TCK)
3) A bug in the manpage for getrusage
4) A bug in the kernel and the values should not be different
5) A bug in my understanding!
Note that although option '4' is unlikely, if I run the test a.out file
on other FreeBSD systems I get 128 for both values, which is even odder!
-pcf.
Test code (will probably give 128 for both on your system)
#include <stdio.h>
#include <unistd.h>
#include <err.h>
#include <sys/types.h>
#include <sys/time.h>
#include <sys/sysctl.h>
static int
getstathz()
{
struct clockinfo clockrate;
int mib[2];
size_t size;
mib[0] = CTL_KERN;
mib[1] = KERN_CLOCKRATE;
size = sizeof clockrate;
if (sysctl(mib, 2, &clockrate, &size, NULL, 0) == -1)
err(1, "sysctl kern.clockrate");
return clockrate.stathz;
}
int
main()
{
printf("get stat hz = %d\n", getstathz());
printf("sysconf clock tick = %ld\n", sysconf(_SC_CLK_TCK));
return 0;
}