3

在运行 10.8 的 Mac 上,我试图打开一个串行端口。

ls /dev/cu* 返回:

/dev/cu.Bluetooth-Modem     /dev/cu.Bluetooth-PDA-Sync  /dev/cu.usbserial-A1009TT7

我可以看到端口在那里,但是当我尝试打开它时,我得到未定义的错误:0(0)。这是我用来打开端口的代码。

char *path = "/dev/cu.usbserial-A1009TT7";

open(path , O_RDWR | O_NOCTTY | O_NONBLOCK);     // open the port

if (file == -1) {
    printf("Error opening port : %s(%d).\n", strerror(errno), errno);
    close(file);
    return -1;
}

有人知道为什么端口不会打开吗?

提前致谢。

4

1 回答 1

5

哎呀!你的意思是输入这个:

file = open(path , O_RDWR | O_NOCTTY | O_NONBLOCK);
^^^^^^^

此外,无需关闭未打开的文件描述符。

if (file == -1) {
    printf(...);
    // close(file); Completely unnecessary.  It's not valid!
    return -1;
}
于 2012-12-04T13:28:16.530 回答