0

I'm studying about Drivers programming for Linux kernel. I found out that there are 2 types of of Device files, character file and block file.

For this moment, I don't really want to know what a device file is exactly about, but I would like to know if there is an abstract concept of character (non-buffered) and block (buffered) files in C language (I mean if it is a concept relative to the Operating System or to C language);

4

2 回答 2

1

了解 C 语言中是否存在字符(非缓冲)和块(缓冲)文件的抽象概念(我的意思是它是相对于操作系统还是相对于 C 语言的概念);

它与操作系统有关,是的。

获取一些示例代码以显示它们在 C 语言中的区别(独立于设备文件)。

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

如果您需要更多信息,本教程非常棒。

于 2013-08-22T14:08:16.010 回答
1

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

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

于 2013-08-22T14:23:58.193 回答