Hi! It seems that your CMOS count time in UTC. So, If CST stands for China Standart Time then time zone offset: UTC + 8 hours ;) Best wishes Vladimir Murzin On 6/12/12, 王哲 <wangzhe5004@gmail.com> wrote:
Hello everyone:
env: Ubuntu 11.04
I write a program reading time from cmos,and the program is as followed:
#include <stdio.h> #include <sys/io.h>
unsigned char cmos_read(unsigned char addr) { unsigned char tmp = 0; iopl(3); outb(addr,0x70); tmp = inb(0x71); iopl(0); return tmp; }
int main(void) { printf("seconds = %x\n",cmos_read(0)); printf("minute = %x\n",cmos_read(2)); printf("hour = %x\n",cmos_read(4)); system("date"); return 0; }
and run the program and the result is as followed:
wanny@wanny-C-Notebook-XXXX:~$ sudo ./a.out seconds = 9 minute = 42 hour = 7 2012年 06月 12日 星期二 15:42:09 CST
question: why the second is right,minute is right , but the hour is different?
Thanks in advance!!