2

系统: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”)返回相同的文件描述符值是否正常?

4

1 回答 1

3

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

于 2012-12-07T20:02:47.870 回答