第三章 设备文件和低级文件的输入输出

2010-05-26  张芳芳 

知识点:
1.Linux中把所有硬件表示为设备文件
2.Linux系统可以使用文件输入输出函数控制硬件,Linux提供的C函数库里没有硬件相关的函数,它利用设备文件控制硬件
        建立设备文件的命令:
mknod[设备文件名][设备文件类型][主设备号][次设备号]
        删除设备文件命令:
rm
        利用设备文件控制硬件,但是设备文件本身并不属于硬件,而是一种信息文件。需要注意的是:普通文件的目的在于存储数据,那么设备文件的目的在于向内核提供控制硬件的设备的设备驱动程序的信息。
       查看设备信息的命令:
 ls
       例如:[root@]# ls -al /dev/console
       crw---------1 root    root 5,1  Jan  1 00:00/dev/console
额,这里涉及到一点主设备号和次设备号的相关内容,这里不详细写了,我可是带病看书呢....
3.文件输入输出函数
       C函数库中包含了功能相同名称不同的函数。
(这个怎么不能上传本地图片???)
       依据内部表现方式,该函数大体上分为流文件输入输出函数和低级文件输入输出函数。系统提供的文件函数称为低级文件输入输出函数。低级文件输入输出函数为基础,引入了中间缓存的概念,从而实现了流处理。
      低级文件是处理基本文件的函数,用于实际建立设备文件。
      流文件输入输出函数的名称多以f开头,流文件的特点如下:
  • 配置了用于中间处理的缓存,由FILE结构体管理缓存。即文件上写入数据或读取文件数据时,不是直接传送到文件,而是通过缓存进行预处理,从而提高输入输出效率。
  • 不是简单地写入或读取文件上的数据,可以利用fprintf().fscanf()等函数,以规则化方式读取或写入数据

        注意:读取或写入设备文件的数据时,不能使用流文件输入输出函数。流文件输入输出函数不能把写入的内容直接保存到相应文件上,而是通过缓存先记录相应内容,再等到条件具备时才把数据记录到文件上。建议最好不要在设备文件上使用流文件输入输出函数

4.mknod命令和低级文件输入输出函数

  • mknod命令   用于建立特殊文件
  • Open()函数   打开设备文件
  • Close()函数   关闭设备文件
  • Read()函数    由设备文件读取数据
  • Write()函数   将数据写入设备文件内
  • Lseek()函数  移动文件的读写位置
  • Ioctl()函数    控制设备文件
  • Fsync()函数  将缓冲区数据写回磁盘

       这部分最重要的,可是内容太多,就算只把每个函数原型写出来也比较费时了~想用手机拍好传上来的,可是不清晰~算了~

353°/3528 人阅读/1 条评论 发表评论

吕攀  2010-06-02

看了一下内容,基本是嵌入式Linux的一些测试,想来你做的也是属于内核移植或者增删模块后的一些测试工作,想了解一下,在2.6的内核上面,增加很多新的特性,对于这个版本的内核,你有否比较完善的测试覆盖点,想要你给点建议。


登录 后发表评论