confusion about reading time from cmos

王哲 wangzhe5004 at gmail.com
Tue Jun 12 03:45:01 EDT 2012


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!!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20120612/95c6d701/attachment.html 


More information about the Kernelnewbies mailing list