Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <string.h>
- #include <stdio.h>
- #include <errno.h>
- #define NUMCORES 2
- long g_CPUUsage[NUMCORES][4];
- int main() {
- int coreFlags = 0;
- char buf[1024];
- FILE* fp;
- int i;
- if ((fp = fopen ("/proc/stat", "r")) == NULL) {
- fprintf (stderr, "couldn't open /proc/stat: %s\n", strerror (errno));
- return 1;
- }
- while (fgets (buf, sizeof buf, fp)) {
- int coreid;
- long coredata[4];
- if (sscanf (buf, "cpu%d %ld %ld %ld %ld", &coreid, &coredata[0],
- &coredata[1], &coredata[2], &coredata[3]) && coreid < NUMCORES)
- {
- memcpy (&g_CPUUsage[coreid][0], &coredata[0], sizeof coredata);
- coreFlags |= (1 << coreid);
- }
- }
- fclose (fp);
- if (coreFlags != (1 << NUMCORES) - 1) {
- fprintf (stderr, "error: insufficient data\n");
- return 1;
- } else
- for (i = 0; i < NUMCORES; ++i)
- printf ("Core %d: [%ld, %ld, %ld, %ld]\n", i, g_CPUUsage[i][0],
- g_CPUUsage[i][1], g_CPUUsage[i][2], g_CPUUsage[i][3]);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement