一、dnotify机制

1、使用

通过对文件描述符设置监听信号实现。

//设置文件相应信号

fcntl(fd, F_SETSIG, SIGRTMIN + 1);

//设置该文件要监听事件

fcntl(fd, F_NOTIFY, DN_ACCESS|DN_MODIFY|DN_CREATE|DN_RENAME|DN_DELETE|DN_ATTRIB|DN_MULTISHOT);

剩 下的就是信号处理了。

2、缺点

缺点1:dnotify机制对监视的每个文件夹都打开了一个文件描述符,如果文件夹所在文件系统需要 umount就不行了。

缺点2:dnotify机制只能对文件夹进程监视。

3、应用

例子:

// 要用fcntl( fd, F_SETSIG, SIGRTMIN + 1 )就要设置这个宏

#define _GNU_SOURCE 1

#include

#include

#include

#include

#define FOLDER_MAXLEN   128

staticcharlisten_folder[FOLDER_MAXLEN];

staticvoidmyhandler(int);

intset_folder_signal(void)

{

structsigaction act;

intfd;

act.sa_handler = myhandler;

sigemptyset( &act.sa_mask );

act.sa_flags = 0;

sigaction( SIGRTMIN + 1, &act, NULL );

if(( fd = open( listen_folder, O_RDONLY ))

return-1;

printf( "fd=%d\n", fd );

fcntl( fd, F_SETSIG, SIGRTMIN + 1 );

fcntl( fd, F_NOTIFY, DN_CREATE );

return0;

}

intmain(intargc,char*argv[] )

{

if( argc != 2 )

{

printf( "%s filepath\n", argv[0] );

exit( 0 );

}

strncpy( listen_folder, argv[1], FOLDER_MAXLEN - 1 );

if( set_folder_signal( )

{

printf( "set signal to %s fail\n", argv[1

linux notify机制,转一篇文章,linux文件访问notify机制相关推荐

  1. 【Linux 性能优化系列】Linux 性能优化 -- CPU 性能篇(三) Linux 软中断

    [Linux 性能优化系列]Linux 性能优化 -- CPU 性能篇(三) Linux 软中断 [1]相关概念 [1.1]中断 中断其实是一种异步的事件处理机制,可以提高系统的并发处理能力:为了减少 ...

  2. 视频教程-Linux系列课程(基础篇)-Linux

    Linux系列课程(基础篇) 2年JavaEE开发 ,5年资深大数据开发大牛,曾就职于蓝点科技,擅长精准广告系统开发,精通Linux操作系统! 具备丰富的大数据研发和培训经验,熟练运用Hadoop和S ...

  3. 一个Linux狂人的语录 (这篇文章值得推广)

    一个Linux狂人的语录  分类: LINUX 我已经半年没有使用 Windows 的方式工作了.Linux 高效的完成了我所有的工作. GNU/Linux 不是每个人都想用的.如果你只需要处理一般的 ...

  4. 转三篇文章关于php中session机制

    解决的问题:同一数据库的两个网站,实现一次登录的功能.网上找了很多关于session的文章,最后参考了下面三篇文章有了解决问题的思路 首先我这边发送要已登录A网站用户的session_id给B网站,然 ...

  5. linux powerpc详解-核心篇 pdf,Linux PowerPC详解--核心篇 (王齐) pdf扫描版

    本书分8章,第1章讲述linux powerpc的组成:第2-4章讲述了有关powerpc处理器的基础知识,包括指令集.寄存器.内存体系结构等:第5-8章讲述linux系统在powerpc处理器中的运 ...

  6. 关于深度学习中的注意力机制,这篇文章从实例到原理都帮你参透了(很系统,重点看)

    最近两年,注意力模型(Attention Model)被广泛使用在自然语言处理.图像识别及语音识别等各种不同类型的深度学习任务中,是深度学习技术中最值得关注与深入了解的核心技术之一. 本文以机器翻译为 ...

  7. 《鸟哥的linux私房菜:服务器篇》linux常用网络命令集合

    网络参数设定命令 • ifconfig:查询.设定网络卡与 IP 网域等相关参数 • ifup, ifdown:这两个文件是 script ,透过更简单的方式来启动网络接口 • route:查询.设定 ...

  8. Linux运行项目部分空指针,技术文章—Linux编程时遇到Oops提示该如何排查?

    各位工程师在Linux下开发程序时,有没有遇到由于系统中存在某些小故障而跳出了"Oops"提示的情况,此时你是如何排查故障?一行行的查看代码吗?其实不用那么复杂,本文将为你介绍一种 ...

  9. 分析RAC下一个SPFILE整合的三篇文章的文件更改

    大约RAC下一个spfile分析_整理在_2014.4.17 说明:文章来源于网络 第一篇:RAC下SPFILE文件改动 在RAC下spfile位置的改动与单节点环境不全然一致,有些地方须要特别注意, ...

  10. java 反射机制_基础篇:深入解析JAVA反射机制

    反射的概念 java 的放射机制:在程序运行时,程序有能力获取一个类的所有方法和属性:并且对于任意一个对象,可以调用它的任意方法或者获取其属性 通俗解析:java 文件需要编译成. class 文件才 ...

最新文章

  1. 【xinfanqie】五方面快速解决Win8蓝屏问题
  2. P1476 休息中的小呆
  3. yum安装docker No package docker available
  4. C# ASP.NET MVC 之 SignalR 学习 实时数据推送显示 配合 Echarts 推送实时图表
  5. python加密模块教程_Python hashlib加密模块常用方法解析
  6. Zabbix邮件报警设置
  7. 【转】对 Rust 语言的分析
  8. markdown首行空两格
  9. CSS3---3.相对父元素的伪类
  10. Remoting技术
  11. python:实现峰值信噪比算法(附完整源码)
  12. 主机无法ping通虚拟机xp系统
  13. 微信小程序退出到微信
  14. 世界最快的超级计算机 神威太湖之光,揭秘全国产世界最快超级计算机“神威·太湖之光”(组图)...
  15. java利器下载_java利器app下载|
  16. 初识Django 笔记
  17. 天津理工大学计算机最牛导师,孟祥太_天津理工大学研究生导师信息
  18. prometheus命令_Prometheus配置
  19. [book]《心流:最优体验心理学》
  20. PTrade交易数据更新——从零到实盘17

热门文章

  1. 【FAQ】调用华为云空间文件管理接口出现“errorCode“:“21000403“
  2. 基于PHP的校园电脑外设的电商平台
  3. sql“Column ‘sn‘ in field list is ambiguous”错误
  4. 吞食天地2完全版乱码怎么解决_王者荣耀调查虚影的任务无法全部完成怎么办?卡在2/3怎么解决...
  5. OSChina 周六乱弹 ——这事你搞的好,就当法国总统,搞不好……
  6. 线程同步:同步思想概述
  7. Flink Checkpoint过程全网独家源码详解(一)之取消任务删除checkpoint
  8. sTC8G1K08+通过串口显示内部电压_技术 | LED电子显示屏控制卡常见软、硬件问题...
  9. 吴天栋c语言教程,语言教学论文,关于教学语言的特点和要求相关参考文献资料-免费论文范文...
  10. cartographer 代码思想解读(10)- slam前端LocalTrajectoryBuilder2D类(主流程)