Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5762199
  • 博文数量: 675
  • 博客积分: 20301
  • 博客等级: 上将
  • 技术积分: 7671
  • 用 户 组: 普通用户
  • 注册时间: 2005-12-31 16:15
文章分类

全部博文(675)

文章存档

2012年(1)

2011年(20)

2010年(14)

2009年(63)

2008年(118)

2007年(141)

2006年(318)

分类: LINUX

2008-08-20 19:29:22

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窗口激活的方法看来不怎么可行:-(

阅读(1639) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~