linux内核 io.h中的outb是哪里的用法?

linux内核 io.h中的outb是哪里的用法?,第1张

这个用于io映射后写单个字符,它并不是CPU的某个特殊指令,所以手册查不到的。

它也不是汇编指令,一般是一个宏定义,所以汇编也是查不到的。

linux内核可以调用ioremap把io端口映射到一个虚拟内存地址,这样可以把io端口的读写 *** 作统一为内存访问。

ioremap之后,outb可以向映射后的地址写一个字节,其效果相当于对映射的io端口写一个字节。

这个你应该有源代码才行

#include <linux/***.h>是在linux-2.6.29/include/linux下面寻找源文件

#include <linux/io.h>//包含了ioremap、iowrite等内核访问IO内存等函数的定义。

在C语言的头文件中对其进行了宏定义:

1

libio.h:# define EOF (-1)

当读文件 *** 作时,遇到文件结束位置或读数据出错均会返回 EOF。 (C语言中所有的输入输出 *** 作均是按读文件的思想来设计的,或者说,是文件 *** 作的一种特例,如getchar()就是fgetc(stdin) 的一个宏 )

1

int getchar() //从标准输入缓冲区读取一个字符,成功返回该字符的ASCII值,出错,返回EOF

那么,如何在键盘输入时,产生EOF呢? 不同的系统方法不同:

linux系统下,在输入回车换行后的空行位置,按 ctrl+d (先按ctrl键,不放,再按d键)

windows系统下,在输入回车换行后的空行位置,按 ctrl+z,再回车确认

以下代码供参考:

1

2

3

4

5

6

7

8

9

#include <stdio.h>

void main()

{

int ch

do {

ch=getchar()


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/6106087.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-15
下一篇2023-03-15

发表评论

登录后才能评论

评论列表(0条)

    保存