我正在尝试以下来自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或其他任何方式(这是一个简单的程序)?
答案 0 :(得分:4)
这很可能取决于您的实施,ioperm
不是标准。
在具有现代glibc
的Linux上,您需要<sys/io.h>
,而且您的代码也会丢失<stdlib.h>
(对于exit
)。