Linux provides the stime(2) call to set the system time. However, while this will update the system\'s time, it does not set the BIOS hardware clock to match the new system
Check out the rtc man-page for details, but if you are logged in as root, something like this:
#include
#include
struct rtc_time {
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday; /* unused */
int tm_yday; /* unused */
int tm_isdst;/* unused */
};
int fd;
struct rtc_time rt;
/* set your values here */
fd = open("/dev/rtc", O_RDONLY);
ioctl(fd, RTC_SET_TIME, &rt);
close(fd);