Mac OSX:如何清除串行端口I / O缓冲区

时间:2015-10-13 17:54:27

标签: c macos io serial-port flush

我正在用C编写一个应用程序,它使用串行端口与蓝牙设备进行通信。我发现我可以关闭com端口,重新启动蓝牙设备,然后重新打开端口,以便从先前的连接中找到位于读缓冲区中的陈旧数据。我需要刷新I / O缓冲区。解决方案似乎是使用

tcflush(fd, TCIOFLUSH)

,根据OS X的tcflush手册页,

  

刷新收到但未读取的数据和写入但未传输的数据。

然而,这似乎无效。

根据Unix: How to clear the serial port I/O buffer?,Unix上的解决方案是使用

ioctl(fd, TCFLUSH, 2)

但是TCFLUSH没有在Mac上定义,我不确定它的等价物是什么。

0 个答案:

没有答案