使用不带无限循环的 C++ i 检测文本文件中的更改
Detect change in text file using C++ i without Infinite Loop?
我正在使用C++读取文本文件。我使用第一行来指示文件是否已更改。例如,文本文件将如下所示:
0
9
更改文本文件后,我正在翻转第一行。因此,新的文本文件将如下所示:
1
5
C++代码将在从文本文件中读取新输入后执行其功能。目前,我正在使用无限循环来检测文本文件中的更改。是否有使用 C++ 检测文本文件中的更改的替代实现?这是我到目前为止的解决方案:
do{
std::ifstream reader;
reader.open(READFILE);
if (!reader){
printf("Error opening the reader file!!");
exit(1);
}
reader >> status >> variable;
if(status != reader_file_status){
reader_file_status = status;
return true
}
} while(true);
文件系统
更改事件是特定于平台的,因此您需要针对不同平台的不同解决方案。
- OSX:文件系统事件 API 文档
- FreeBSD/OSX: kqueue doc
- Linux: inotify doc
- Windows: Windows API Doc
似乎有一些跨平台包装器。快速谷歌搜索显示:
- https://github.com/emcrisostomo/fswatch (GPL3, OSX/FreeBSD/Linux/Windows/Solaris(
- http://doc.qt.io/archives/qt-4.8/qfilesystemwatcher.html (LGPL, OSX/FreeBSD/Windows(
相关文章:
- 文本文件中的单词链表
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 如何将内容数组写入文本文件?
- 无法通过空白将文本文件行分隔为矢量
- 我正在使用嵌套的while循环来解析具有多行的文本文件,但由于某种原因,它只通过第一行,我不知道为什么
- C++将文本文件中的数据读取到结构数组中
- 在指针的帮助下,文本文件中单词的频率
- 将字符指针十六进制转换为字符串并保存在文本文件C++中
- 将值从二维数组输出到文本文件
- 如何在c++中从文本文件中逐行读取整数
- 从文本文件中读取时钟时间和事件时间并进行处理
- 如何从文本文件中读取值和数组
- 如何在C++中确定文本文件中的元素是字符还是数字
- C++试图读取一个文件并输出到另一个文本文件
- 如何通过套接字将文本文件的内容从服务器发送到客户端
- 已修改的LinkedList未在文本文件本身中更新
- C++文本文件的获取线
- 为什么C++的文件 I/O 在读取文本文件时忽略初始空行?我怎样才能让它不这样做?
- 打印逐行存储的文本文件
- C++文本文件输入