当前位置:  技术问答>linux和unix

linux/unix下如何检查一个目录(包括子目录)的文件变化

    来源: 互联网  发布时间:2015-06-24

    本文导语:  如题,我参考过 网上一些dnotify的代码,好像有两种方法,一个是直接用到linux的自己目录notify机制(有比较大的局限性),一个是利用fcntl设置信号的方法。请各位研究过的人详细讲解一下。谢谢~ | ...

如题,我参考过 网上一些dnotify的代码,好像有两种方法,一个是直接用到linux的自己目录notify机制(有比较大的局限性),一个是利用fcntl设置信号的方法。请各位研究过的人详细讲解一下。谢谢~

|
其实老外早就想到这个问题了。fam是sgi开发的一个监控文件创建、修改、删除的工具,以前用在irix上,现在已经open source了。
http://oss.sgi.com/projects/fam/
Redhat的Linux发行版中就包括它,应该还提供了一堆的api。
我以前也为了这个问题大伤脑筋,干吗不利用前人的工具啊。

|
我想你说的两种方法其实只是一种,利用fcntl设置信号只是用来设置kernel向application发的信号类型。另外,dnotify有什么局限性?

|
用fstat()或stat()函数试试。
#include 
#include 
int fstat(int filefes,struct stat *buf);

#include 
#include 
int stat(const char *file_name,struct stat *buf);

其中struct stat中有三个字段可以用:
struct stat
{
    ...
    time_t  st_atime;  //time of last access
    time_t  st_mtime;  //time of last modification
    time_t  st_ctime;  //time of last change
};

|
小弟每研究过,但是我有一个比较怪异的想法:就是利用makefile的依赖关系可以检测!
我想这个方法还简单,还实用!

    
 
 

您可能感兴趣的文章:

  • 怎样在linux下用命令实现cp目录a下的子目录的所有内容到b目录中,只cp目录a的子目录内容???
  • linux下如何获得一个目录下的文件数(包含子目录中的文件数)?
  • linux在当前目录及其子目录中查找一个名为 a.b的文件用什么命令?
  • 请问LINUX行命令方式怎么COPY一个目录下所有文件和子目录到另一个目录下
  • linux 子目录个数的限制及文件个数的限制
  • linux 命令 tar -cf example.tar *.jpg 怎样包含子目录中的*.jpg?
  • 在Redhat Linux下如何只列出当前目录下的子目录名而不列出文件名?
  • linux下的C库和WIN下的C库(甚至C++库)区别大吗?比如子目录操作函数等等。
  • 怎样在linux下用命令实现cp目录a下的字目录的所有内容到b目录中,cp子目录内容???
  • 如何在linux下用c/c++边编程实现文件夹下所有子目录文件的遍历?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux2.4到2.6,信号的概念有哪些变化?
  • linux如何监控某个文件内容的变化并
  • 请问从hp-ux到linux移植时,socket部分会有什么变化?哪位大虾有详细的文档?
  • linux内核版本变化问题
  • 有哪个文档详细说明linux内核的每个版本的变化?
  • 请问:linux 下 C语言编程 , 如何将 串口 由 全双工 变化为 半双工 通讯 方式?
  • linux下copy文件通常又些文件名的大小写会发生变化的,而linux又对大小写敏感,如何解决这一问题
  • 请问, linux 驱动中, IO 口变化了,驱动如何通知应用程序?
  • 程序中获取的环境变量能够根据Linux系统中相应环境变量而变化吗?
  • 【一周话题】介绍Linux 2.6.13 内核中新引入的文件系统变化通知机制 inotify
  • linux下的C++程序开发用什么工具能够设置断点,跟踪值的变化?
  • linux+apache+cgi,有什么方法可以让客户端看见的页面实时变化
  • 一个监控LINUX目录和文件变化的Shell脚本分享
  • 请教linux下的shell的编写,文本内容没发生变化时告警
  • linux c/c++ IP字符串转换成可比较大小的数字
  • 在win分区上安装linux和独立分区安装linux有什么区别?可以同时安装吗?(两个linux系统)
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐
  • 在虚拟机上安装的linux上,能像真的linux系统一样开发linux程序么?
  • secureCRT下Linux终端汉字乱码解决方法
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在有linux的盘)
  • Linux c字符串中不可打印字符转换成16进制
  • 安装vmware软件,不用再安装linux系统,就可以模拟linux系统了,然后可以在其上学习一下LINUX下的基本操作 了?
  • Linux常用命令介绍:更改所属用户群组或档案属性
  • 红旗Linux主机可以通过127.0.0.1访问,但如何是连网的Win2000机器通过Linux的IP去访问Linux
  • linux命令大全详细分类介绍及常用linux命令文档手册下载
  • .net/c#/asp.net iis7站长之家
  • Linux Kernel 'sctp_v6_xmit()'函数信息泄露漏洞
  • 如何让win2000和linux共存。我装好WIN2000,再装LINUX7.0,但LILO只能找到LINUX,不能引导WIN2000
  • linux c下利用srand和rand函数生成随机字符串
  • 在windows中的VMware装了个linux,主板有两个串口,能做windows和linux的串口通信测试么,怎么测试这两个串口在linux是有效
  • Linux c++虚函数(virtual function)简单用法示例代码


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3