Linux中的文件不是

时间:2016-09-08 05:16:02

标签: linux

当我第一次学习Linux时,我被告知几乎 Linux中的所有内容都是文件。今天早上,我把它重复给了我的女朋友。她问什么不是?我试着找了半天的例子。

所以我的问题是Linux中的文件不是什么?

2 个答案:

答案 0 :(得分:1)

几乎。 Posix中的几乎所有内容都是通过文件描述符处理的。这意味着用于文件操作的相同功能也适用于管道,套接字和硬件设备。这也意味着如果您使用select(或其中一个更好的替代方案),您可以在程序中有一个等待所有可能输入的点。

话虽如此,Posix中的一些东西,尤其是Linux中的东西,绝对不是文件。

最明显的是信号。它们与程序的执行异步处理,因此无法接受文件接口。为此目的,pselect和其中一个更好的替代品被发明了。

事情更巧妙地不是文件是线程同步构造(互斥体,信号量等)。已经进行了一些尝试以使这些可用作文件描述符(参见signalfdeventfd),但那些很难被发现。我认为,这在很大程度上是因为他们的表现形式与处理它们的方式截然不同。

答案 1 :(得分:0)

例如,计算机硬件(CPU,RAM,Etc)实际上不是一个文件,但它在linux中表示为一个文件。

More details here