Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Linux上使用Ruby实现实时usb存储检测?_Ruby_Linux_Dbus_Libusb - Fatal编程技术网

如何在Linux上使用Ruby实现实时usb存储检测?

如何在Linux上使用Ruby实现实时usb存储检测?,ruby,linux,dbus,libusb,Ruby,Linux,Dbus,Libusb,我认为ruby dbus可能是正确的解决方案,但我似乎找不到任何关于如何在存储设备连接到Linux机器时进行实时检测的示例。有人举过这样的例子吗?你可以采取很多不同的方法。 通过Ruby FFI链接到libusb 这样做的好处是libusb支持热插拔通知,因此这可以满足您的需要: 从: 设备热插拔支持 如果LIBUSB.has\u功能(:CAP\u has\u HOTPLUG)返回true,则可以使用对设备热插拔的支持。这需要Linux或MacOS上的libusb-1.0.16或更新版本。Wi

我认为ruby dbus可能是正确的解决方案,但我似乎找不到任何关于如何在存储设备连接到Linux机器时进行实时检测的示例。有人举过这样的例子吗?

你可以采取很多不同的方法。
通过Ruby FFI链接到
libusb

这样做的好处是libusb支持热插拔通知,因此这可以满足您的需要:

从:

设备热插拔支持

如果
LIBUSB.has\u功能(:CAP\u has\u HOTPLUG)
返回true,则可以使用对设备热插拔的支持。这需要Linux或MacOS上的libusb-1.0.16或更新版本。Windows支持仍在进行中

热插拔事件处理程序可以注册到{
LIBUSB::Context}on_hotplug_event
}。然后需要调用{
LIBUSB::Context#handle_events
}以接收任何事件。这可以通过阻止调用(可能在它自己的线程中)或使用{
LIBUSB::Context}pollfds
}来检测任何要处理的事件来完成


请读“。您要求我们推荐非现场资源,这是离题的。我不是,我是问如何在Linux上使用Ruby实现实时usb存储检测。一点示例代码就好了。谢谢你,我不知道libusb有热插拔支持,太完美了!