linux c 监控文件内容改变,如何让程序监视C ++中的文件修改?
WinCE的一个工作例子void FileInfoHelper::WatchFileChanges( TCHAR *ptcFileBaseDir, TCHAR *ptcFileName ){static int iCount = 0;DWORD dwWaitStatus; HANDLE dwChangeHandles; if( ! ptcFileBaseDir || ! ptcFileName ) return;wstring wszFileNameToWatch = ptcFileName;dwChangeHandles = FindFirstChangeNotification(
ptcFileBaseDir,
FALSE,
FILE_NOTIFY_CHANGE_FILE_NAME |
FILE_NOTIFY_CHANGE_DIR_NAME |
FILE_NOTIFY_CHANGE_ATTRIBUTES |
FILE_NOTIFY_CHANGE_SIZE |
FILE_NOTIFY_CHANGE_LAST_WRITE |
FILE_NOTIFY_CHANGE_LAST_ACCESS |
FILE_NOTIFY_CHANGE_CREATION |
FILE_NOTIFY_CHANGE_SECURITY |
FILE_NOTIFY_CHANGE_CEGETINFO );if (dwChangeHandles == INVALID_HANDLE_VALUE) {
printf("\n ERROR: FindFirstChangeNotification function failed [%d].\n", GetLastError());
return;}while (TRUE) {
// Wait for notification.
printf("\n\n[%d] Waiting for notification...\n", iCount);
iCount++;
dwWaitStatus = WaitForSingleObject(dwChangeHandles, INFINITE);
switch (dwWaitStatus)
{
case WAIT_OBJECT_0:
printf( "Change detected\n" );
DWORD iBytesReturned, iBytesAvaible;
if( CeGetFileNotificationInfo( dwChangeHandles, 0, NULL, 0, &iBytesReturned, &iBytesAvaible) != 0 )
{
std::vector vecBuffer( iBytesAvaible );
if( CeGetFileNotificationInfo( dwChangeHandles, 0, &vecBuffer.front(), vecBuffer.size(), &iBytesReturned, &iBytesAvaible) != 0 ) {
BYTE* p_bCurrent = &vecBuffer.front();
PFILE_NOTIFY_INFORMATION info = NULL;
do {
info = reinterpret_cast( p_bCurrent );
p_bCurrent += info->NextEntryOffset;
if( wszFileNameToWatch.compare( info->FileName ) == 0 )
{
wcout <FileName <Action;
switch(info->Action) {
case FILE_ACTION_ADDED:
break;
case FILE_ACTION_MODIFIED:
break;
case FILE_ACTION_REMOVED:
break;
case FILE_ACTION_RENAMED_NEW_NAME:
break;
case FILE_ACTION_RENAMED_OLD_NAME:
break;
}
}
}while (info->NextEntryOffset != 0);
}
}
if ( FindNextChangeNotification( dwChangeHandles ) == FALSE )
{
printf("\n ERROR: FindNextChangeNotification function failed [%d].\n", GetLastError());
return;
}
break;
case WAIT_TIMEOUT:
printf("\nNo changes in the timeout period.\n");
break;
default:
printf("\n ERROR: Unhandled dwWaitStatus [%d].\n", GetLastError());
return;
break;
}}FindCloseChangeNotification( dwChangeHandles );}
linux c 监控文件内容改变,如何让程序监视C ++中的文件修改?相关推荐
- Linux 文件管理-文件内容-读取工具-【cattac】连接多个文件并打印到标准输出
cat === 连接多个文件并打印到标准输出. 概要 cat [OPTION]... [FILE]... 主要用途 显示文件内容,如果没有文件或文件为-则读取标准输入. 将多个文件的内容进行连接并打印 ...
- linux下最简单多线程单文件socks5代理proxy服务器程序(仅一个c文件,带详细注解)
2020.9.11 网上看的都比较复杂,GITHUB找了一个多线程的相对简单的MicroSocks项目,花了几周时间(没办法,菜鸟一个)改了一下,改成单文件,测试OK. /* wxl_socks5_p ...
- C语言:编写程序,打开文本文件stu.txt,读出文件内容,将其中的字符‘s’删除,将修改后的内容存到student.txt文件中。
/*C语言:编写程序,打开文本文件stu.txt,读出文件内容,将其中的字符's'删除,将修改后的内容存到student.txt文件中.*/ #include <stdio.h> void ...
- 【.net core 通过NPOI库将Excel文件内容分类输出到不同的Excel中】
前言 由于在文章[.net core 通过miniexcel库将Excel文件内容分类输出到不同的Excel中]中实现的Excel内容分类不能够保留原来的文件头格式,所以使用NPOI进行优化.NPOI ...
- java 判断ftp文件是否存在_java如何检验ftp服务器中指定文件是否存在
详细内容 项目工作中,需要检验ftp服务器中指定文件是否存在,在网上查阅了相关资料,可以通过ftpClient类进行实现. 免费学习视频教程分享:java课程 具体实现代码:import org.ap ...
- 知道文件扩展名,如何获得在系统中该文件类型的图标
----------------------- // FAQ整理:ccrun(老妖) // 2005.11.30 ----------------------- 请教:知道文件扩展名, ...
- 上传文件计算机传输的,如何将手机微信中的文件传输到计算机
2. 选择此选项可在手机的微信客户端中进行扫描,然后将扫描框与网页上的QR码对齐. 3. 扫描成功后,在手机上单击"确认",登录微信网络版本. 4. 之后,您将跳转到网页上的微信界 ...
- php批量替换文件内容,写了个遍历目录、批量替换文件内容的类
之前有需要,就写了这个类. 功能: 1 遍历目录下的所有文件(可指定后缀名) 2 批量替换文件内容(正则.字符串) 3 批量替换文件后缀名 4 批量替换文件编码 使用例: $dirExplorer = ...
- linux解压exe文件,在Deepin V20系统下解压Windows中.exe文件的方法
其实在Linux系统下解压Windows中.exe文件非常的简单,如果使用的是Ubuntu系统,只需双击.exe文件,然后系统自带的解压软件就可以查看到.exe文件里面的内容,然而,如果是在Deepi ...
最新文章
- 开始整SWF文字高亮显示——第一步:解析PDFToFlex源文件(修改补充版)
- 主成分分析 图像处理 matlab,matlab信号处理与主成分分析法,毕业设计求助
- 【USACO Mar08】 奶牛跑步 A-star k短路
- 华为交换机同步linux时间服务器,华为s5720s系列交换机同步时间
- android-6.0不支持FloatMath.sqrt(x * x + y * y)
- 小孔成像总结_初中物理解题技巧+方法总结,初二初三都要看看!
- Cloud 已死,本地部署万岁!
- 安卓开发之刮刮乐实例教程
- 6.Nginx 的 Rewrite 规则
- 华为平板解锁工具_它已不再是个娱乐工具 华为平板M6升级版:MatePad 10.8上手图赏...
- 三菱FX5U,机床X轴Y轴工作台定位控制程序!使用三菱J4-A系列伺服驱动器绝对位置系统,程序大小27000多步
- 高手需要具备的思维模型
- 彼得德鲁克管理理念摘写
- echarts瀑布图_请问echarts中有没有瀑布图+折线图的使用方法?
- 普通人如何正确学习人工智能?
- 解决电脑本地网络连接显示红叉又可上网问题
- 二分查找python实现代码_二分查找——Python实现
- 刺激战场android闪退,刺激战场闪退怎么办
- linux下解压命令大全
- html阅读小红书,小红书排名怎么刷:以下HTML5页面大纲开始!
热门文章
- github下载慢,轻松提速教程
- Python:模拟登录、点击和执行 JavaScript 语句案例
- Python 位运算符
- java中标识符,关键字,数据类型
- 7号团队:团队任务3-每日任务(2018-11-26)
- 2022-2028年中国液体燃料行业市场研究及前瞻分析报告
- 机器学习入门(11)— 反向传播的加法节点、乘法节点、加法层代码实现、乘法层代码实现
- [LeetCode] 130. Surrounded Regions Java
- python+opencv选出视频中一帧再利用鼠标回调实现图像上画矩形框
- 分享一个小工具:Excel表高速转换成JSON字符串