詳細については rtc の man ページを参照してください。ただし、root としてログインしている場合は、次のようになります:
#include <linux/rtc.h>
#include <sys/ioctl.h>
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);
stime() を呼び出した後、次のようにします:
system("/sbin/hwclock --systohc");
詳細については、hwclock(8) のマニュアル ページを参照してください。