我能够同时在两个不同的进程中访问/ dev / ttyS0设备文件。为什么?

时间:2014-02-27 05:44:36

标签: c linux device

我读到了一些地方,任何设备文件一次只能被一个进程访问。但在我的情况下,我能够同时通过两个不同的进程访问我的/dev/ttyS0设备文件。在我的情况下,我用minicom打开了一个/dev/ttyS0然后我用c编写了一个程序,它打开同一个文件并尝试从中读取/写入。我可以同时打开两个。为什么会发生这种情况?

1 个答案:

答案 0 :(得分:2)

评论转换为答案:

  • 为什么不呢?通常,许多进程在任何时候都有一个给定的终端作为I / O设备。
  

您是说终端设备文件与其他设备文件不同?

没有;它们与设备文件相同,并且多个进程可以在任何给定时间打开大多数设备文件。 Unix / Linux不强制对设备进行独占访问。诸如/dev/null之类的设备文件可以同时被许多进程使用。磁盘设备可以由多个进程打开(尽管通常,您只需要使用任何给定设备一次一个进程,但某些DBMS将有多个进程访问单个磁盘设备)。当进程分叉时,两个进程都可以访问同一组文件。