以用户身份编程I / O端口

时间:2012-03-17 11:41:59

标签: c

我正在尝试以下来自here的I / O端口示例。

#include<stdio.h>
#include<unistd.h>
#include<asm/io.h>

#define baseport 0x378

int main()
{
 if(ioperm(baseport,3,1))
  {
    perror("ioperm");
     exit(1);
  }
  outb(0,baseport);
  exit(0);
}

我正在使用上面链接中建议的gcc -o port ports.c(上面的代码)。但它给了我以下错误,即

ports.c:3:19: fatal error: asm/io.h: No such file or directory
  compilation terminated.

是否要包含任何其他头文件而不是asm / io.h或其他任何方式(这是一个简单的程序)?

1 个答案:

答案 0 :(得分:4)

这很可能取决于您的实施,ioperm不是标准。

在具有现代glibc的Linux上,您需要<sys/io.h>,而且您的代码也会丢失<stdlib.h>(对于exit)。