当前位置:  开发笔记 > 编程语言 > 正文

使用termios api检测字符设备是否已在Linux中断开连接(c ++)

如何解决《使用termiosapi检测字符设备是否已在Linux中断开连接(c++)》经验,为你挑选了0个好方法。

我在Linux中使用termios api与串行设备通信.我正在尝试检测设备是否已断开连接,以便在超时后尝试重新连接.我有以下示例代码:

while(1)
{
    FD_ZERO(&rfds);
    FD_SET(tty_fd, &rfds);

    // have tried checking fcntl(tty_fd, F_GETFL); too

    // Blocking call to wait until we have data
    select(tty_fd+1, &rfds, NULL, NULL, NULL);

    // While we have data, collect it
    while (read(tty_fd, &c, 1)>0 && bytesRead++<200)
    {
        serialBuffer.push_back(c);
    }

    bytesRead = 0;

    // Try to parse it
    BufferParse();
}

在ttyUSB设备物理断开连接后,我实际上并没有看到select()或fcntl返回错误值(-1).当然,我可以检查/ dev /中的文件是否存在,但我希望有一个更优雅的解决方案.

非常感谢任何建议,谢谢!

推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有