码迷,mamicode.com
首页 > 系统相关 > 详细

linux中普通文件和块设备文件的区别

时间:2017-03-30 14:13:40      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:linux   程序   操作系统   

1,基本概念

  普通文件(Regular File)。指普通意义上的文件,如数据文件、可执行文件等。

  设备文件(Device File)。类unix操作系统都是基于文件概念的,文件是由字节序列而构成的信息载体。根据这一点,可以把IO设备当作设备文件这种所谓的特殊文件来处理;因此,与磁盘上的普通文件进行交互所用的同一系统调用可直接用于IO设备。根据设备驱动程序的基本特征,设备文件可以分为两种:块和字符。这两种硬件设备之间的差异并不容易划分,但我们至少可以假定以下的差异:[1]

  · 块设备的数据可以随机地被访问,而且从人类用户的观点看,传送任何数据块所需的时间都是较少而且是大致相同的。块设备的典型例子是硬盘、软盘[1]。块设备一般情况下是带缓冲区的。

  · 字符设备的数据或者不可以随机访问,或者可以被随机访问,但是访问随机数据所需的时间很大程度上依赖于数据在设备内的位置[1]

2, 寻址空间的区别

  块设备文件是块设备的物理寻址空间;普通文件是块设备的虚拟寻址空间。普通文件比块设备文件多一层文件系统的地址转换机构。

这样说可能还是不是很明白 直接举个例子吧
先说下cat命令
cat命令是循环读命令直到碰到文件结尾EOF,但是当你cat个设备文件时会发现设备文件的内容一直在读
例如:
技术分享

当时当我执行cat /dev/hello时会出现这样的情况:
技术分享
请注意上面的^C

说明设备文件没有文件的终止标志EOF

谢谢!!!

本文出自 “梦Dream” 博客,请务必保留此出处http://dreamy.blog.51cto.com/12471447/1911645

linux中普通文件和块设备文件的区别

标签:linux   程序   操作系统   

原文地址:http://dreamy.blog.51cto.com/12471447/1911645

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!