CPU frequency

Dan Nelson dnelson at allantgroup.com
Tue Jun 15 21:32:13 PDT 2004


In the last episode (Jun 16), CAVELIER Grgory said:
> How can I get the CPU frequency from a C program ???
> Under Linux, I used the /proc filesystem but how can I do this with 
> FreeBSD (I have version 5.2.1)

Try 

#include <stdio.h>
#include <stdlib.h>
#include <sys/sysctl.h>
#include <sys/types.h>
int main(void)
{
	long mhz;
	size_t mhzsize = sizeof(mhz);

	if (sysctlbyname("hw.clockrate", &mhz, &mhzsize, NULL, 0))
	{
		perror("cannot get MHz");
		return 1;
	}

	printf("%ld\n", mhz);
	return 0;
}


You could also use machdep.tsc_freq to get the exact clock rate in Hz.

-- 
	Dan Nelson
	dnelson at allantgroup.com


More information about the freebsd-questions mailing list