我試圖理解下面的代碼:閱讀和寫作上的I/O端口
#include<stdio.h>
#include<stdlib.h>
#include<sys/io.h>
#define baseport 0x378
int main()
{
int b;
if(ioperm(baseport,3,1))
{
perror("ioperm");
exit(1);
}
outb(0,baseport);
usleep(1000000);
printf("\n the status: %x,\n",inb(baseport));
if (ioperm(baseport,3,0)) {perror("ioperm"); exit(1);}
exit(0);
}
輸出爲0xFF,255十進制的,不管我寫上的端口1(使用outb()
)端口0。我不明白爲什麼當我寫0時它是255。
什麼的應該是端口後面,並且它應該返回別的不是0xFF的? – Mat 2012-03-17 14:38:21
@mat其並行端口我沒有任何附加的0x378 – karan421 2012-03-17 15:02:17
是輸出端口,而不是輸入端口。 – 2012-03-17 15:31:48