confusion about reading time from cmos

Vladimir Murzin murzin.v at gmail.com
Tue Jun 12 03:56:18 EDT 2012


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 at 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 at 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!!
>



More information about the Kernelnewbies mailing list