使用没有无限循环的C ++ i检测文本文件中的更改?

时间:2018-02-03 13:45:12

标签: c++ algorithm c++11 file-io

我正在使用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);

1 个答案:

答案 0 :(得分:0)

文件系统更改事件是特定于平台的,因此您需要针对不同平台使用不同的解决方案。

  • osx:文件系统事件api doc
  • freebsd / osx:kqueue doc
  • linux:inotify doc
  • windows:windows api doc

似乎有些跨平台包装器在附近。一个快速的谷歌搜索透露: