免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1134 | 回复: 0
打印 上一主题 下一主题

实时监控文件创建或修改 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-08-20 19:29 |只看该作者 |倒序浏览

                                1、定期探测法
while(1)
{
    checkfile();
    sleep(5);
}
2、信号法
向目标程序发送指定的信号SIGXXX
kill -s SIGXXX $(pidof TARGET)
在程序中设置signal函数,接收到SIGXXX信号,然后调用相应的函数进行处理。
signal(SIGXXX, checkfile);
3、inotify法
不具备可移植性,在Linux 2.6(2.6.13以上)上可以使用,但是在Linux 2.4以及一些Unix操作系统上是无法使用的。
BTW:以前总是以为一些IDE在发现一个文件发生改变的时候,能够提示reload那个文件是很神的。最近在用codelite发现它也有这个功能,正好是开源的IDE,就找出源代码来看一下是怎么实现的。
简直想吐血:
Editor在窗口Actived的时候会调用Actived()函数,函数里面:
获得当前文件的最后修改时间,然后与之前保存的一个时间进行比较,如果不同,说明文件发生了变化,提示重新加载文件。
这种靠GUI窗口激活的方法看来不怎么可行:-(
               
               
               
               
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/12592/showart_1136360.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP