字符和块文件之间的区别

时间:2013-08-22 13:49:06

标签: c linux file buffer device

我正在研究Linux内核的驱动程序编程。我发现有两种类型的设备文件,字符文件和块文件。

目前,我真的不想知道设备文件到底是什么,但我想知道是否存在字符(非缓冲)的抽象概念, C语言中的阻止(缓冲)文件(我的意思是它是相对于操作系统或C语言的概念);

2 个答案:

答案 0 :(得分:1)

  

知道是否存在抽象的角色概念(非缓冲)   和C语言中的块(缓冲)文件(我的意思是它是一个概念   相对于操作系统或C语言);

它与操作系统相关是。

  

获取一些示例代码以显示它们之间的差异   语言C(独立于它与设备文件有关)。

你会发现没有区别。我的意思是字符设备或块1没有特殊C功能。当然,代码将是不同的,但只是逻辑,而不是语言。

如果您需要更多信息,

This tutorial非常棒。

答案 1 :(得分:1)

在C中没有字符文件的概念。你有流,你可以一个接一个地读取,但这与底层硬件无关。并且C库可能会也可能不会缓冲它。

另一方面,在驱动程序级别,字符设备是一种能够仅提供ony值的设备(串行端口就是这样的例子),而不是块设备,它可以提供定义的缓冲区(如硬盘,CD驱动器等)。