Introduction
Introduction Statistics Contact Development Disclaimer Help
temp.c - spoon - set dwm status
git clone git://git.codemadness.org/spoon
Log
Files
Refs
LICENSE
---
temp.c (851B)
---
1 #include <err.h>
2 #include <stdio.h>
3
4 #ifdef __OpenBSD__
5 #include <sys/sysctl.h>
6 #include <sys/time.h>
7 #include <sys/sensors.h>
8
9 int
10 tempread(void *arg, char *buf, size_t len)
11 {
12 int mib[5];
13 struct sensor temp;
14 size_t sz;
15
16 mib[0] = CTL_HW;
17 mib[1] = HW_SENSORS;
18 mib[2] = 0; /* cpu0 */
19 mib[3] = SENSOR_TEMP;
20 mib[4] = 0; /* temp0 */
21 sz = sizeof(temp);
22 if (sysctl(mib, 5, &temp, &sz, NULL, 0) == -1)
23 return -1;
24 /* temp.value is in kelvin so convert to celsius for display */
25 snprintf(buf, len, "%lld", (temp.value - 273150000) / 1000000);
26 return 0;
27 }
28 #elif __linux__
29 int
30 tempread(void *arg, char *buf, size_t len)
31 {
32 char *path = arg;
33 FILE *fp;
34 int temp;
35
36 fp = fopen(path, "r");
37 if (fp == NULL) {
38 warn("fopen %s", path);
39 return -1;
40 }
41 fscanf(fp, "%d", &temp);
42 fclose(fp);
43 snprintf(buf, len, "%d", temp / 1000);
44 return 0;
45 }
46 #endif
You are viewing proxied material from codemadness.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.