【发布时间】:2011-09-26 05:18:17
【问题描述】:
假设Linux下的情况如下:
一个进程不断地从 USB 串行转换器设备 (/dev/ttyUSB0) 中读取数据。该设备突然拔下并再次插入(或出于某种原因正在重置自身)。进程继续拥有/dev/ttyUSB0 的有效文件句柄,但不会从设备接收任何数据,除非进程重新打开设备(因为 udev 已删除并重新创建设备节点)。
是否有一种直接方法来检测这种情况(即不是间接通过检测数据流超时),以便进程知道它必须重新打开设备?使用stat()监控/dev/ttyUSB0的修改时间可靠吗?
其他细节:
进程使用标准open()函数打开设备文件。
/dev 是由udev 控制的tmpfs。
注意:我确实不想为此使用任何 udev 规则,并且更喜欢直接在流程中实施的解决方案。
【问题讨论】:
标签: linux filesystems monitoring udev usbserial