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

时间:2012-12-07 20:00:30

标签: c linux file-descriptor tty

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

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

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

第一个进程打开“/ 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是否正常返回两个不同进程/程序中不同设备/路径名(分别为“dev / ttyS1”和“dev / ttyS0”)的相同文件描述符值?

1 个答案:

答案 0 :(得分:3)

这是完全正常的。 File descriptor只是内核每进程打开文件表的偏移量。