Fedora10, 如何检测U盘插入

CodeProject-Jerry 2008-12-30 09:51:30
在Fedora10中,U盘插入能够自动mount
请问 怎么在代码中接受到U盘插入的事件通知呢?

我现在的做法是开启一个线程,每隔几秒去检测一次,这样不是很好。
GNOME能够自动地检测到U盘插入,并自动得弹出文件浏览器,请问他是如何实现的?
...全文
119 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
CodeProject-Jerry 2009-01-01
  • 打赏
  • 举报
回复
在 /etc/udev/rules.d/ 下面添加规则即可
zhyinty 2008-12-31
  • 打赏
  • 举报
回复
ubuntu就是自动挂载啊,看看它的代码
xiaopoy 2008-12-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 Chiyer 的回复:]
http://www.linuxforum.net/forum/gshowflat.php?Cat=&Board=linuxK&Number=573970&page=0&view=collapsed&sb=5&o=all&fpart=

see see
[/Quote]
THS,帮顶接分
sizemismatch 2008-12-31
  • 打赏
  • 举报
回复
mark
noenoughmemory 2008-12-31
  • 打赏
  • 举报
回复
mark
就呆在云上 2008-12-31
  • 打赏
  • 举报
回复

功能是在内核里面实现的吧,看看内核的usb代码
看看人家怎么做的,如果不用编程的方法1楼的方法可行
要是用c和c++的话,就应该要用到内核的代码了

Linux的文件系统是异步的,也就是说写一个文件不是立刻保存到介质(硬盘,U盘等)中,而是存到缓冲区内,等积累到一定程度再一起保存到介质中。如果没有umount就非法拔出U盘,程序是不知道的,fopen,fwrite等函数都依然返回正确,知道操作系统要把写介质的时候,才会提示I/O错误。可是很多数据都会因为这个不及时的错误报告而丢失。 


事实上,USB驱动程序在U盘插入和拔出时,都对系统配置文件做了修改。


例如U盘驱动程序会在插入或拔出时往 /proc/scsi/usb-storage-0/0 里面记上 Attached:Yes or No


通过查看这个文件就不难检测U盘是否插入或拔出了。


注意:U盘是否插入的状态与是否挂载(mount)无关。
CodeProject-Jerry 2008-12-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 Chiyer 的回复:]
http://www.linuxforum.net/forum/gshowflat.php?Cat=&Board=linuxK&Number=573970&page=0&view=collapsed&sb=5&o=all&fpart=

see see
[/Quote]
我在应用层使用hotplug 应该怎么做呢???
Ventoy 是一款短小精悍优秀开源的新型多重u盘启动盘制作工具,有了Ventoy大家就无需反复地格式化U盘,只需要把ISO文件拷贝到U盘里面无需其它任何操作就可以启动了,无需参考ventoy使用教程大家可以一次性拷贝很多个诸如微PE、老毛桃、大白菜等不同类型的ISO文件,在启动时Ventoy会显示一个菜单来选择,无差异支持Legacy BIOS和UEFI模式。目前已经测试了各类超过742个ISO文件 ventoy启动盘制作工具全面兼容包括Windows 7、Windows 8、Windows 8.1、Windows 10、Windows 11、Windows Server 2012、Windows Server 2012 R2、Windows Server 2016、Windows Server 2019、Windows Server 2022、Debian、Ubuntu、CentOS、RHEL、Deepin、Fedora、Rocky Linux、SLES、openSUSE、MX Linux、Manjaro、Linux Mint、Endless OS、DragonFly FreeBSD、pfSense GhostBSD、FydeOS、CloudReady、VMware ESXi、Citrix XenServer、Xen XCP-ng在内的所有主流系统 需要提醒大家注意点是krd.iso在 UEFI模式下是默认开启签名校验的,而Ventoy启动盘在启动时会做一些hook的动作,这些hook动作可能会被签名校验阻止,所以在UEFI模式下,大家需要在启动到卡巴斯基的启动菜单界面以后,按c进入命令行,执行“set check_signatures=no”命令,然后再按“ESC”键返回,然后继续启动即可。 Ventoy(多重u盘启动盘制作工具)特色功能简介: 100% 开源 (许可证) 使用简单 (使用说明) 快速 (拷贝文件有多快就有多快) 可以安装在 U盘/本地硬盘/SSD/NVMe/SD卡等设备上 直接从 ISO/WIM/IMG/VHD(x)/EFI 文件启动,无需解开 ISO/WIM/IMG/VHD(x)/EFI 文件在磁盘上无需连续 支持MBR和GPT分区格式 同时支持 x86 Legacy BIOS 以及 IA32/x86_64/ARM64/MIPS64 UEFI UEFI 模式支持安全启动 (Secure Boot) 说明 支持数据持久化 说明 支持Windows系统的自动安装部署 说明 支持 RHEL7/8/CentOS7/8/SUSE/Ubuntu Server/Debian 等Linux系统的自动安装部署 说明 镜像分区支持 FAT32/exFAT/NTFS/UDF/XFS/Ext2(3)(4) 文件系统 支持超过4GB的ISO文件 保留ISO原始的启动菜单风格(Legacy & UEFI) 支持大部分常见操作系统, 已测试740+ 个ISO文件 不仅仅是启动,而是完整的安装过程 菜单可以在列表模式和目录树模式之间实时、动态切换 说明 提出 "Ventoy Compatible" 概念 支持插件扩展 Linux vDisk(vhd/vdi/raw...) 启动解决方案 支持向运行环境中插入文件 动态替换ISO文件中的原始启动配置文件 高度可定制化的主题风格和菜单 启动过程中支持U盘设置写保护 不影响U盘日常普通使用 版本升级时数据不会丢失 无需跟随操作系统升级而升级Ventoy

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧