在运行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;
}
任何人都知道为什么港口不会打开?
提前感谢。
答案 0 :(得分:5)
糟糕!你打算输入这个:
file = open(path , O_RDWR | O_NOCTTY | O_NONBLOCK);
^^^^^^^
此外,无需关闭未打开的文件描述符。
if (file == -1) {
printf(...);
// close(file); Completely unnecessary. It's not valid!
return -1;
}