c语言,U盘识别

Chef_Front 2015-07-09 03:17:18
如何写自动识别U盘的程序,用C语言实现。
我想写一个程序,这个程序的功能是,当有U盘插入电脑时,程序会有反应,识别有U盘插入。谢谢。
...全文
578 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
dd8924 2015-07-30
  • 打赏
  • 举报
回复
windows的不了解。 linux下的如上面前辈们说的,需要文件系统支持,其实也就是加载对应的驱动(默认fat32支持,ntfs的可能需要单独加载驱动)。 linux下视版本,一般可监控系统文件/proc/bus/input/devices(有的是/proc/bus/usb/devices)获取到usb设备信息(设备号,厂商号等),再根据设备号,厂商号自行创建设备节点(/dev目录下sda,sdb这样的),再把对应的节点挂载到某个路径下,就可访问了。 另外hotplug可以看看,libusb也可以了解下(缺点是,插入多个usb设备无法区分,可能需要用户根据u盘里的标识文件来自行判断)
灌水号 2015-07-28
  • 打赏
  • 举报
回复
这个要OS了,不光C语言了。
yc1012523 2015-07-28
  • 打赏
  • 举报
回复
用netlink, 监听热插拔事件, 就可以了。代码不多
ID870177103 2015-07-11
  • 打赏
  • 举报
回复
WM_DEVICECHANGE 其中lParam是PDEV_BROADCAST_HDR类型 话说上MSDN找不会更快吗
  • 打赏
  • 举报
回复
搜索 hotplug
policelorl 2015-07-09
  • 打赏
  • 举报
回复
我觉得应该上驱动了,挂钩文件系统,每当有磁盘接入或移除的时候,都会产生一个请求包,拦截这个请求包就可以得到要变动的磁盘信息。 如果不上驱动的话,我觉得只能不断检查A盘到Z盘是否存在来判断了。
gzwgyfgpf 2015-07-09
  • 打赏
  • 举报
回复
这个恐怕不是只学会c语言就可以搞定的,我这个菜鸟也只能帮你顶一下了
weixin_29336691 2015-07-09
  • 打赏
  • 举报
回复
去看USB协议
11 1 1 ---一段引言(几句话) 计算机能够平稳运行,离不开计算机的硬件系统和相应的软件系统。硬件系统中,又可以分为输入设备和输出设备,软件系统又分为系统软件和应用软件。 (1)---介绍存储器子系统(可以展开讲存储器体系结构,比如内存,外存,cache,rom, ram等等) 计算机存储系统中,分为内存储器和外存储器,其中内存器从功能上可以分为:读写存储器 RAM、只读存储器ROM两大类;外存储器有U盘、移动硬盘以及光盘。 RoM:ROM表示只读存储器(Read Only Memory),在制造ROM的时候,信息(数据或程序)就被存入并永久保存。这些信息只能读出,一般不能写入,即使机器停电,这些数据也不会丢失。ROM一般用于存放计算机的基本程序和数据,如BIOS ROM。其物理外形一般是双列直插式(DIP)的集成块。 Cache:高速缓存。我们知道,电脑的内存是以系统总线的时钟频率工作的,这个频率通常也就是CPU的外频。但是,CPU的工作频率(主频)是外频与倍频因子的乘积。Cache是一种特殊的存储器,它由Cache 存储部件和Cache控制部件组成。Cache 控制器部件包括主存地址寄存器、Cache 地址寄存器,主存-Cache地址变换部件及替换控制部件等。CPU运行程序是一条指令一条指令地执行的,而且指令地址往往是连续的,意思就是说CPU在访问内存时,在较短的一段时间内往往集中于某个局部,这时候可能会碰到一些需要反复调用的子程序。电脑在工作时,把这些活跃的子程序存入比内存快得多的Cache 中。CPU在访问内存时,首先判断所要访问的内容是否在Cache中,如果在,就称为"命中",此时CPU直接从Cache中调用该内容;否则,就称为"不命中",CPU只好去内存中调用所需的子程序或指令了。CPU不但可以直接从Cache中读出内容,也可以直接往其中写入内容。由于Cache的存取速率相当快,使得CPU的利用率大大提高,进而使整个系统的性能得以提升。 RAM(random access memory)随机存储器。存储单元的内容可按需随意取出或存入,且存取的速度与存储单元的位置无关的存储器。 按照存储信息的不同,随机存储器又分为静态随机存储器(Static RAM,SRAM)和动态随机存储器(Dynamic RAM,DRAM)。一个DRAM的存储单元存储的是0还是1取决于电容是否有电荷,有电荷代表1,无电荷代表0。但时间一长,代表1的电容会放电,代表0的电容会吸收电荷,这就是数据丢失的原因;刷新操作定期对电容进行检查,若电量大于满电量的1/2,则认为其代表1,并把电容充满电;若电量小于1/2,则认为其代表0,并把电容放电,藉此来保持数据的连续性。 ---介绍CPU子系统(概括性的就可以,几句话) CPU火柴盒大小的体积上,布满了数以万计的晶体管,他们彼此独立又相互关联,CPU内部按照功能区域划分,分别为控制单元(Control Unit;CU)、逻辑单元(Arithmetic Logic Unit;ALU)、存储单元(Memory Unit;MU)三个重要单元。按照CPU内部结构划分,分别为定点运算单元,浮点运算单元,MMX单元,L1 Cache单元和寄存器等。 ---介绍IO子系统 ---介绍软件系统(分系统软件,用户软件) 计算机软件中分为系统软件和用户软件。其中系统软件最重要且最基本的就是操作系统(OS)。它是最底层的软件,它控制所有计算机运行的程序并管理整个计算机的资源,是计算机裸机与应用程序及用户之间的桥梁。没有它,用户也就无法使用某种软件或程序。 1.操作系统 是计算机系统的控制和管理中心,从资源角度来看,它具有处理机、存储器管理、设备管理、文件管理等4项功能。 2.程序语言设计 计算机解题的一般过程是:用户用计算机语言编写程序,输入计算机,然后由计算机将其翻译成机器语言,在计算机上运行后输出结果。程序设计语言的发展经历了五代——机器语言、汇编语言、高级语言、非过程化语言和智能语言。 3.语言处理程序 计算机只能直接识别和执行机器语言,因此要计算机上运行高级语言程序就必须配备程序语言翻译程序,翻译程序本身是一组程序,不同的高级语言都有相应的翻译程序。 4.数据库管理程序 数据库管理系统是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库。 5.系统辅助处理程序 系统辅助处理程序也称为"软件研制开发工具"、"支持软件"、"软件工具",主要有编辑程序、调试程序、装备和连接程序、调试程序。 其中:操作系统如我们常用的Windows,linux,Dos,unix mac等。 语言处理程序如汇编语言汇编器,C语言编译、连接器等, 一般来讲,系统软件包括操作系统和一系列基本的工具(比如编译器,数据库管理,存储器格式化

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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