我听说有人说在 Linux 中“所有设备都是文件”。这意味着什么?我对文件的理解是,它是磁盘上写入字节和读取字节的逻辑位置。据我所知,设备只是任何物理硬件......与文件有点无关。有人可以向我解释这个说法吗?
问问题
937 次
2 回答
7
Linux将每个设备都视为文件。也就是说,您以与与文件交互的方式完全相同的方式以编程方式与设备交互:
- 您通过路径指定设备,通常在
/dev
目录下。 - 您首先“打开”设备,就像打开文件一样,它会为您提供文件描述符。
- 您可以
ioctl
对文件描述符执行(输入/输出控制)操作。 - 您可以通过写入和/或读取文件描述符来发送和/或检索数据。
- 使用完设备后,您“关闭”设备。
于 2013-11-10T02:59:42.483 回答
2
这意味着设备的实际细节被抽象出来,以便应用程序可以将其视为用于 IO 目的的文件。
例如,串行端口可能以多种不同的方式在硬件中实现,但操作系统隐藏了这一点,以便应用程序可以像读取和写入文件一样从设备读取和写入设备。
于 2013-11-10T02:58:11.210 回答