【发布时间】:2014-03-30 09:08:09
【问题描述】:
我读过一些地方,任何设备文件一次只能由一个进程访问。但就我而言,我可以同时通过两个不同的进程访问我的/dev/ttyS0 设备文件。就我而言,我用/dev/ttyS0 打开了minicom,然后我用c 编写了一个程序,它打开同一个文件并尝试从中读取/写入。我可以同时打开两个。为什么会发生在我身上?
【问题讨论】:
-
为什么不呢?通常,许多进程在任何时候都有一个给定的终端作为 I/O 设备。
-
@JonathanLeffler 你是说终端设备文件和其他设备文件不一样?
-
否;它们与设备文件相同,并且多个进程可以在任何给定时间打开大多数设备文件。 Unix/Linux 不强制对设备进行独占访问。
-
@JonathanLeffler 您能否详细说明您的评论作为答案?
-
在
/dev/ttyS0的情况下,只有一个进程会接收字节,不是吗?因此,/var/lock/LCK..ttyS0机制用于锁定串行端口。另一方面,似乎多个进程可以打开/dev/input/eventX,并且都接收相同的输入事件。