当我们在界面上修改文件时,可以提示用户是否保存此次修改,并以此来发出其他信号。但是当我们的程序后台运行时,怎样自动的监控某个文件的变化呢?

Inotify

以它为关键字,会搜索到大部分你想要了解的,下面直接贴一个可以在linux下运行的小demo:

平台:ubuntu 14.04

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/inotify.h>#define EVENT_SIZE  ( sizeof (struct inotify_event) )
#define EVENT_BUF_LEN     (512)
#define CATALOGUE "/root/My_Workspace/test/inotify/catalogueTest"int main(void)
{int length, i = 0;int fd;int wd;char buffer[EVENT_BUF_LEN];//inotify初始化fd = inotify_init();if (fd < 0){perror("inotify_init failed: ");return -1;}//监听目录wd = inotify_add_watch(fd, CATALOGUE, IN_MODIFY);printf("wd = %d\n",wd);while(1){i = 0;length = read(fd, buffer, EVENT_BUF_LEN);if (length < 0){perror("read");continue;}struct inotify_event *event = (struct inotify_event *) &buffer[i];if (event->len){if (event->mask & IN_CREATE){printf("IN_CREATE  \n");}else if (event->mask & IN_MODIFY){printf("IN_MODIFY  \n");}else{printf("not \n");}}//usleep(1000 * 1000);printf("you should do sth \n");}inotify_rm_watch(fd, wd);close(fd);return 0;
}

效果如下:

要求全文文字超过300才算原创,以下内容均为凑字数内容:最近一段时间每天6点50开始起床,大概流程如下,6点半闹铃,关了之后再睡10多分钟。起来之后慢慢洗漱,之后七八分钟解决早饭,然后去赶7点30分左右的公交,这个时间不大准~10多分钟后到达公司楼下,然后先绕着下面草坪先转一圈,默念赤壁赋中的一句话“惟江上之清风,与山间之明月,耳得之而为声,目遇之而成色,取之不尽用之不竭,是造物者之无尽藏也”。以我浅显的理解,就是什么都会消失。

可以关注它:

Linux 监控文件变化相关推荐

  1. PHP Linux监控文件变化,文件监控与通知机制 audit inotify

    什么是auditThe Linux Audit Subsystem is a system to Collect information regarding events occurring on t ...

  2. 监控linux空间变化,Linux监控文件变化及主动上报实现

    一.说明 最近在做一些主机的自动化检查操作,每次都是定时主动去扫描.这种方式一是实时性不佳,二是扫描时会陡然给中心机很大的压力.后来想有没有一种主机上的配置如果发生变动就能主动上报的机制,如果能主动上 ...

  3. delphi 监控文件变化_监控Linux文件变化,防止系统被黑

    运维服务器比较头疼的一个问题是系统被黑,沦为肉鸡或者矿机.除了加强安全基线配置,加强网络和端口加固,系统和应用bug修复,上IDS/IPS(入侵检测/防御系统)之外,另一个方面就是系统监控,一个完善准 ...

  4. Python监控文件变化:watchdog

    Python监控文件变化有两种库:pyinotify和watchdog.pyinotify依赖于Linux平台的inotify,后者则对不同平台的的事件都进行了封装.也就是说,watchdog跨平台. ...

  5. 神器推荐!一个能监控文件变化的Python神器—看门狗

    假设现在有一个应用场景,需要对文件系统进行监控,发生变化时产生日志,对新增的文件做一些相应的操作. 比如说应用到我们之前的音乐高潮提取器:若当前文件夹下增加了一个音乐文件,监控器就调用音乐高潮提取器, ...

  6. rust 使用hotwatch 监控文件变化

    hotwatch是一个可以监控文件变化的crate,使用起来非常方便.参考:GitHub - francesca64/hotwatch: A Rust library for conveniently ...

  7. FileSystemWatcher 监控文件变化

    本文测试了FileSystemWatcher 类监控文件变化. using System; using System.Security.Permissions; using System.IO;nam ...

  8. viper监控文件变化出现两次事件

    问题描述 监控配置文件变化,如果内容发生了修改,需要及时加载. 使用viper监控文件变化发现了, 对文件修改一次,会出发两次事件. 示例代码 viper.OnConfigChange(func(e ...

  9. 服务器监控文件变化,如何使用nodejs监控文件变化并使用sftp上传到服务器

    如何使用nodejs监控文件变化并使用sftp上传到服务器 发布时间:2021-07-01 12:06:56 来源:亿速云 阅读:99 作者:小新 这篇文章主要为大家展示了"如何使用node ...

最新文章

  1. Matlab中的CVX工具包安装
  2. java ee jsp_EE JSP:使用自定义标签库生成动态内容
  3. php基础知识 书写格式
  4. JS Location
  5. 12月 Web 服务器调查:nginx 增长最快,微软市场份额最高
  6. U-BOOT 编译过程
  7. lj2400恢复出厂_联想LJ2400加粉后如何清零
  8. 研究生论文写作心得体会
  9. 联动报警系统服务器,火灾自动报警系统的维护,该如何应对?
  10. 戴着人工心脏上脱口秀大会——王十七的充电人生
  11. 【MLPs+ESN】利用多层感知机MLPs对经典ESN(回声状态网络)的输出权值计算进行优化的MATLAB仿真
  12. 知识分享!COB封装流程介绍!-道合顺大数据Infinigo
  13. c++practice
  14. “花书” 《深度学习》经验法则--中文
  15. C++:使用高斯-勒让德正交估计柯西主值 (CPV) 某些奇异积分(附完整源码)
  16. 2019年学习java还有前途吗?
  17. 关于谷歌浏览器最新版出现的视频下载按钮禁掉解决方案
  18. 一些常用命令和快捷键总结,详见目录
  19. 新闻联播鸿蒙系统,重磅!华为鸿蒙系统问世
  20. 【数据结构与算法】栈的介绍及基本运算(出栈、入栈、销毁栈等)

热门文章

  1. 数电基础 逻辑门电路 学习截图
  2. C语言int 类型的表示范围 sizeof()函数
  3. 【企业数字化转型】数字化转型的本质(学习笔记)
  4. C++ GUI Programming with Qt4 Second Edition 之 前言
  5. github项目首页播放小视频啦!
  6. 小学生计算能力测试系统设计
  7. Git-用 cherry-pick 挑好看的小樱桃
  8. win10打开模拟器蓝屏
  9. 天啊!原来旧手机这么值钱!竟然不知道丨实用
  10. 身份证号码组件:lt;idcardgt; —— 快应用组件库H-UI