我读到了一些地方,任何设备文件一次只能被一个进程访问。但在我的情况下,我能够同时通过两个不同的进程访问我的/dev/ttyS0
设备文件。在我的情况下,我用minicom
打开了一个/dev/ttyS0
然后我用c编写了一个程序,它打开同一个文件并尝试从中读取/写入。我可以同时打开两个。为什么会发生这种情况?
答案 0 :(得分:2)
评论转换为答案:
您是说终端设备文件与其他设备文件不同?
没有;它们与设备文件相同,并且多个进程可以在任何给定时间打开大多数设备文件。 Unix / Linux不强制对设备进行独占访问。诸如/dev/null
之类的设备文件可以同时被许多进程使用。磁盘设备可以由多个进程打开(尽管通常,您只需要使用任何给定设备一次一个进程,但某些DBMS将有多个进程访问单个磁盘设备)。当进程分叉时,两个进程都可以访问同一组文件。