当前位置: 技术问答>linux和unix
linux 下有类似MFC中FindFirstChangeNotification检测硬盘上文件生成的方法吗?
来源: 互联网 发布时间:2015-08-03
本文导语: 如题.我是想实时监控磁盘,一旦有特定文件生成则触发,又不想做成定时去检测,不知道大家有什么好方法.谢谢! | static void handler(int sig, siginfo_t *si, void *data) { return; } int main(int argc,char *a...
如题.我是想实时监控磁盘,一旦有特定文件生成则触发,又不想做成定时去检测,不知道大家有什么好方法.谢谢!
|
static void handler(int sig, siginfo_t *si, void *data)
{
return;
}
int main(int argc,char *argv[])
{
struct sigaction act;
int fd;
// 登记信号处理例程
act.sa_sigaction = handler;
sigemptyset(&act.sa_mask);
act.sa_flags = SA_SIGINFO;
sigaction(SIGRTMIN,&act,NULL);
// 需要了解当前目录"."的情况
fd = open(".", O_RDONLY);
fcntl(fd, F_SETSIG, SIGRTMIN);
fcntl(fd, F_NOTIFY, DN_MODIFY|DN_DELETE | DN_MULTISHOT);
/* we will now be notified if any of the files
in "." is modified or new files are created */
while (1)
{
// 收到信号后,就会执行信号处理例程。
// 而 pause() 也就结束了。
pause();
//处理过程
//youfuc();
}
}
Handler 就是你的处理函数
{
return;
}
int main(int argc,char *argv[])
{
struct sigaction act;
int fd;
// 登记信号处理例程
act.sa_sigaction = handler;
sigemptyset(&act.sa_mask);
act.sa_flags = SA_SIGINFO;
sigaction(SIGRTMIN,&act,NULL);
// 需要了解当前目录"."的情况
fd = open(".", O_RDONLY);
fcntl(fd, F_SETSIG, SIGRTMIN);
fcntl(fd, F_NOTIFY, DN_MODIFY|DN_DELETE | DN_MULTISHOT);
/* we will now be notified if any of the files
in "." is modified or new files are created */
while (1)
{
// 收到信号后,就会执行信号处理例程。
// 而 pause() 也就结束了。
pause();
//处理过程
//youfuc();
}
}
Handler 就是你的处理函数