【发布时间】:2015-07-19 19:11:28
【问题描述】:
我正在使用 termios.h 与 USB 加密狗进行通信。当我断开加密狗时,我想关闭文件描述符。有没有办法做到这一点。我知道对于 f.e. TCP/IP 连接如果对方关闭连接,您将获得 EOF。但是,使用串行连接时,我的程序基本上会乱跑(我正在使用循环从描述符中读取...)。
基本上我想有一些迹象表明连接已关闭,以便我可以优雅地关闭程序。也许通过使用 ioctl 更改设置?
【问题讨论】:
-
只是为了澄清:我知道 udev 等。我想知道是否有类似于 TCP/IP 的方式可以读取文件描述符,如果它是 EOF,您就知道连接已关闭。我还没有找到使用串行端口执行此操作的方法。但也许有一个特殊的配置允许......(?)
-
您的程序运行异常,因为...?也许你应该在那里寻找解决方案 - 从“损坏”描述符中读取应该将
errno设置为EAGAIN以外的其他值,当根本没有数据时使用。 -
感谢您的建议。明天我会试试这个......
标签: c linux serial-port termios