linux notify机制,转一篇文章,linux文件访问notify机制
一、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机制相关推荐
- 【Linux 性能优化系列】Linux 性能优化 -- CPU 性能篇(三) Linux 软中断
[Linux 性能优化系列]Linux 性能优化 -- CPU 性能篇(三) Linux 软中断 [1]相关概念 [1.1]中断 中断其实是一种异步的事件处理机制,可以提高系统的并发处理能力:为了减少 ...
- 视频教程-Linux系列课程(基础篇)-Linux
Linux系列课程(基础篇) 2年JavaEE开发 ,5年资深大数据开发大牛,曾就职于蓝点科技,擅长精准广告系统开发,精通Linux操作系统! 具备丰富的大数据研发和培训经验,熟练运用Hadoop和S ...
- 一个Linux狂人的语录 (这篇文章值得推广)
一个Linux狂人的语录 分类: LINUX 我已经半年没有使用 Windows 的方式工作了.Linux 高效的完成了我所有的工作. GNU/Linux 不是每个人都想用的.如果你只需要处理一般的 ...
- 转三篇文章关于php中session机制
解决的问题:同一数据库的两个网站,实现一次登录的功能.网上找了很多关于session的文章,最后参考了下面三篇文章有了解决问题的思路 首先我这边发送要已登录A网站用户的session_id给B网站,然 ...
- linux powerpc详解-核心篇 pdf,Linux PowerPC详解--核心篇 (王齐) pdf扫描版
本书分8章,第1章讲述linux powerpc的组成:第2-4章讲述了有关powerpc处理器的基础知识,包括指令集.寄存器.内存体系结构等:第5-8章讲述linux系统在powerpc处理器中的运 ...
- 关于深度学习中的注意力机制,这篇文章从实例到原理都帮你参透了(很系统,重点看)
最近两年,注意力模型(Attention Model)被广泛使用在自然语言处理.图像识别及语音识别等各种不同类型的深度学习任务中,是深度学习技术中最值得关注与深入了解的核心技术之一. 本文以机器翻译为 ...
- 《鸟哥的linux私房菜:服务器篇》linux常用网络命令集合
网络参数设定命令 • ifconfig:查询.设定网络卡与 IP 网域等相关参数 • ifup, ifdown:这两个文件是 script ,透过更简单的方式来启动网络接口 • route:查询.设定 ...
- Linux运行项目部分空指针,技术文章—Linux编程时遇到Oops提示该如何排查?
各位工程师在Linux下开发程序时,有没有遇到由于系统中存在某些小故障而跳出了"Oops"提示的情况,此时你是如何排查故障?一行行的查看代码吗?其实不用那么复杂,本文将为你介绍一种 ...
- 分析RAC下一个SPFILE整合的三篇文章的文件更改
大约RAC下一个spfile分析_整理在_2014.4.17 说明:文章来源于网络 第一篇:RAC下SPFILE文件改动 在RAC下spfile位置的改动与单节点环境不全然一致,有些地方须要特别注意, ...
- java 反射机制_基础篇:深入解析JAVA反射机制
反射的概念 java 的放射机制:在程序运行时,程序有能力获取一个类的所有方法和属性:并且对于任意一个对象,可以调用它的任意方法或者获取其属性 通俗解析:java 文件需要编译成. class 文件才 ...
最新文章
- 【xinfanqie】五方面快速解决Win8蓝屏问题
- P1476 休息中的小呆
- yum安装docker No package docker available
- C# ASP.NET MVC 之 SignalR 学习 实时数据推送显示 配合 Echarts 推送实时图表
- python加密模块教程_Python hashlib加密模块常用方法解析
- Zabbix邮件报警设置
- 【转】对 Rust 语言的分析
- markdown首行空两格
- CSS3---3.相对父元素的伪类
- Remoting技术
- python:实现峰值信噪比算法(附完整源码)
- 主机无法ping通虚拟机xp系统
- 微信小程序退出到微信
- 世界最快的超级计算机 神威太湖之光,揭秘全国产世界最快超级计算机“神威·太湖之光”(组图)...
- java利器下载_java利器app下载|
- 初识Django 笔记
- 天津理工大学计算机最牛导师,孟祥太_天津理工大学研究生导师信息
- prometheus命令_Prometheus配置
- [book]《心流:最优体验心理学》
- PTrade交易数据更新——从零到实盘17
热门文章
- 【FAQ】调用华为云空间文件管理接口出现“errorCode“:“21000403“
- 基于PHP的校园电脑外设的电商平台
- sql“Column ‘sn‘ in field list is ambiguous”错误
- 吞食天地2完全版乱码怎么解决_王者荣耀调查虚影的任务无法全部完成怎么办?卡在2/3怎么解决...
- OSChina 周六乱弹 ——这事你搞的好,就当法国总统,搞不好……
- 线程同步:同步思想概述
- Flink Checkpoint过程全网独家源码详解(一)之取消任务删除checkpoint
- sTC8G1K08+通过串口显示内部电压_技术 | LED电子显示屏控制卡常见软、硬件问题...
- 吴天栋c语言教程,语言教学论文,关于教学语言的特点和要求相关参考文献资料-免费论文范文...
- cartographer 代码思想解读(10)- slam前端LocalTrajectoryBuilder2D类(主流程)