Echtzeituhr einstellen ...
-
Hallo,
ich möchte die Hardware Uhrzeit neu einstellen.
Braucht man da spezielle Berechtigungen ?
Wie geht das mit gcc ?
ich kenne leider nur das auslesen mit:#include <time.h> #include <stdio.h> int main() { struct tm zeit; time_t now; char buffer[100]; time(&now); zeit = *localtime(&now); strftime(&buffer, 99, "%Y-%m-%d, %H:%M", &zeit); printf("Now: %s \n", buffer); }
Gruß
thenoname
-
so nochmal..
#include <stdio.h> #include <linux/rtc.h> #include <sys/ioctl.h> #include <sys/time.h> #include <sys/types.h> #include <fcntl.h> #include <unistd.h> #include <time.h> int main(void) { int fd; struct tm *zeit; time_t jetzt; jetzt = time(NULL); zeit = localtime(&jetzt); printf("%s\n",asctime(localtime(&jetzt))); zeit->tm_year -= 20; printf("Year: %d\n", zeit->tm_year); fd = open("/dev/rtc", O_RDWR); ioctl(fd, RTC_SET_TIME, zeit); return 0; } /* jetzt mal hwclock aufrufen */
sollte soweit selbsterklärend sein..
eventuell ist auch statt tm, rtc_tm zu verwenden.
du solltest root sein um das auszuführen.
-
multi thx ...
ich nehme mal an, das man das "open" auch mit einkompilierten
root Rechten ausführen kann, das auch ein normaler Benutzer
Zugriff erhällt. Oder kann man das /dev/rtc einfach mit chmod
verändern ?Gruß
thenoname