当前位置:  技术问答>linux和unix

Linux的获取U盘的插入或拔除消息

    来源: 互联网  发布时间:2016-11-17

    本文导语:  以前在WIndows下,可以直接重载OnDeviceChange函数来得知设备改变消息. #define DBT_DEVICEREMOVECOMPLETE        0x8004  // device is gone 转到Linux下,不知道应用程序是怎么得知设备已经移除的消息. 还请各位指点,谢谢!...

以前在WIndows下,可以直接重载OnDeviceChange函数来得知设备改变消息.
#define DBT_DEVICEREMOVECOMPLETE        0x8004  // device is gone

转到Linux下,不知道应用程序是怎么得知设备已经移除的消息.

还请各位指点,谢谢!

|
/*
 * Copyright (C) 2004-2006 Kay Sievers 
 *
 * This program is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License as published by the
 * Free Software Foundation version 2 of the License.
 * 
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License along
 * with this program; if not, write to the Free Software Foundation, Inc.,
 * 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 *
 */

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

#include "udev.h"
#include "udevd.h"

static int uevent_netlink_sock = -1;
static int udev_monitor_sock = -1;
static volatile int udev_exit;

static int init_udev_monitor_socket(void)
{
struct sockaddr_un saddr;
socklen_t addrlen;
int retval;

memset(&saddr, 0x00, sizeof(saddr));
saddr.sun_family = AF_LOCAL;
/* use abstract namespace for socket path */
strcpy(&saddr.sun_path[1], "/org/kernel/udev/monitor");
addrlen = offsetof(struct sockaddr_un, sun_path) + strlen(saddr.sun_path+1) + 1;

udev_monitor_sock = socket(AF_LOCAL, SOCK_DGRAM, 0);
if (udev_monitor_sock == -1) {
fprintf(stderr, "error getting socket: %sn", strerror(errno));
return -1;
}

/* the bind takes care of ensuring only one copy running */
retval = bind(udev_monitor_sock, (struct sockaddr *) &saddr, addrlen);
if (retval 

    
 
 

您可能感兴趣的文章:

  • 请问linux下程序中如何检测移动硬盘的插入拔除?
  • Linux c++库boost unordered_set数据插入及查找代码举例
  • 急,请问Linux中如何像windows获取网络接口是否插入网线???
  • Linux c++库boost unordered_map数据插入及查找代码举例
  • Linux 如何确认插入的USB设备是SDA还是SDD
  • Linux下用户层程序如何获知某个USB设备被插入?
  • linux 机器上如何 检测 是否有 U盘 插入过,并拷走文件?
  • linux下如何对文本文件和记录文件进行插入删除操作啊?
  • vm中文本模式,安装redhatE5的场合,设置完字体后提示没有插入linux盘
  • linux pro c 插入数据库汉字都是?? 急
  • U盘插入后Linux无响应,怎么回事?
  • Linux RH 7.3下插入U盘后,fdisk -l看没有多出设备,这是怎么回事?
  • 在Linux中如何对文本文件进行改写、插入等操作?
  • RH-Linux 9下添加删除程序需要插入cd1,但我是从硬盘安装的。如何修改安装源文件路径?
  • 问题:在linux系统中,怎么使用shell脚本,在文件的第三行和第四行之间新增一行(插入一段字符,或者一个变量的值)?
  • Linux中的资源管理器对移动磁盘的插入检测是怎么做到的呢?
  • 为什么我的RedHat Linux 9.0下一插入光驱就死机状(几分钟没反应,我没等它读出)?
  • 在windows下使用虚拟机运行linux,在不插入网线的状态下可不可以使用smb服务
  • {高分200分}jsp访问linux上的mysql数据库,取到和插入的数据全是乱码,我是这样设置的???
  • linux动态定时器插入时 我没想明白
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux不用命令方式读文件获取网络流量,如何使用C函数调用获取网络流量信息?
  • linux获取主机名后用gethostbyname() 不能获取主机ip
  • 新手问题:Linux下如何获取进程占用的系统资源
  • LINUX下获取WINDOWS用户(组)和系统服务?
  • 关于在linux获取系统软件信息
  • linux dhcpv6概率获取不到地址
  • linux 内核空间如何获取当前时间(常用格式)
  • Linux下如何获取屏幕分辨率?
  • Linux 如何获取 所有的接口信息
  • linux程序获取显示器个数
  • 怎样获取超过4G的Linux Regular文件的大下?
  • 如何获取应用程序的当前路径(Linux)
  • Linux下蓝牙命令.如何获取主类信息
  • linux如何获取当前程序ID并用shell脚本停止进程
  • linux /proc 的问题。以及获取子进程虚拟内存信息。
  • Linux系统下如何获取STL帮助
  • linux如何获取在浏览器或者文本编辑器中复制的内容
  • linux下如何用C语言获取不同网段上设备的MAC地址
  • linux内核层面,有什么好的获取时间的函数
  • linux下,如何获取未配置的网卡的mac地址。
  • linux c/c++ IP字符串转换成可比较大小的数字
  • 在win分区上安装linux和独立分区安装linux有什么区别?可以同时安装吗?(两个linux系统)
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐
  • 在虚拟机上安装的linux上,能像真的linux系统一样开发linux程序么?
  • secureCRT下Linux终端汉字乱码解决方法
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在有linux的盘)
  • Linux c字符串中不可打印字符转换成16进制
  • 安装vmware软件,不用再安装linux系统,就可以模拟linux系统了,然后可以在其上学习一下LINUX下的基本操作 了?
  • Linux常用命令介绍:更改所属用户群组或档案属性
  • 红旗Linux主机可以通过127.0.0.1访问,但如何是连网的Win2000机器通过Linux的IP去访问Linux
  • linux命令大全详细分类介绍及常用linux命令文档手册下载


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3