📄 io-port-programming-9.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.7">
<TITLE>如何在 Linux 下撰写程式来使用 I/O 埠: 程式码□例</TITLE>
<LINK HREF="IO-Port-Programming-10.html" REL=next>
<LINK HREF="IO-Port-Programming-8.html" REL=previous>
<LINK HREF="IO-Port-Programming.html#toc9" REL=contents>
</HEAD>
<BODY>
<A HREF="IO-Port-Programming-10.html">Next</A>
<A HREF="IO-Port-Programming-8.html">Previous</A>
<A HREF="IO-Port-Programming.html#toc9">Contents</A>
<HR>
<H2><A NAME="s9">9. 程式码□例</A></H2>
<P>这边是一段用来存取 I/O 埠的简单的程式码□例:
<P>
<BLOCKQUOTE><CODE>
<HR>
<PRE>
/*
* example.c: 一个用来存取 I/O 埠的非常简单的□例
*
* 这个程式码并没有什麽用处, 他只是做了埠的写入, 暂停,
* 以及埠的读出几个动作. 编译时请使用 `gcc -O2 -o example example.c',
* 并以 root 的身份执行 `./example'.
*/
#include <stdio.h>
#include <unistd.h>
#include <asm/io.h>
#define BASEPORT 0x378 /* lp1 */
int main()
{
/* 取得埠位址的存取权限 */
if (ioperm(BASEPORT, 3, 1)) {perror("ioperm"); exit(1);}
/* 设定埠的输出资料信号 (D0-7) 全为零 (0) */
outb(0, BASEPORT);
/* 休息一下 (100 ms) */
usleep(100000);
/* 从状态埠 (BASE+1) 读出资料并显示结果 */
printf("status: %d\n", inb(BASEPORT + 1));
/* 我们不再需要这些埠位址 */
if (ioperm(BASEPORT, 3, 0)) {perror("ioperm"); exit(1);}
exit(0);
}
/* 结束 example.c */
</PRE>
<HR>
</CODE></BLOCKQUOTE>
<P>
<P>
<HR>
<A HREF="IO-Port-Programming-10.html">Next</A>
<A HREF="IO-Port-Programming-8.html">Previous</A>
<A HREF="IO-Port-Programming.html#toc9">Contents</A>
</BODY>
</HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -