Open在不同的进程中返回相同的文件描述符

系统:Ubuntu 12.04
编译器:gcc(版本:4.6.3)

我的想法是编写一个客户端 – 服务器应用程序来通过串口交换数据。

但我的问题是,当我执行下面的代码片段时,打开返回相同的文件描述符,如果我启动两个独立的进程:

第一个进程打开“/ dev / ttyS0”。
第二个进程打开“dev / ttyS1”。

.... serialPortDescriptor = open(portName, O_RDWR | O_NOCTTY | O_NDELAY | O_EXCL); if (serialPortDescriptor == INVALID_SERIALPORT_DESCRIPTOR) { return SERIALPORT_UNKNOWN_ERROR; } ..... 

open是否正常返回两个不同进程/程序中不同设备/path名(“dev / ttyS1”和“dev / ttyS0”)的相同文件描述符值?

这完全正常。 文件描述符只是内核内每个进程的打开文件表的偏移量。