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