首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >最有效的方法,频率(每5秒)更新/维护一个文件/矢量镜像?

最有效的方法,频率(每5秒)更新/维护一个文件/矢量镜像?
EN

Stack Overflow用户
提问于 2018-05-28 17:12:16
回答 1查看 52关注 0票数 0

1) I有一个文件,其内容通过向量类型容器镜像。

2)每5秒左右检查一次文件内容(是否有更改)。

3)对文件所做的任何更改都会导致向量被更新,从而维护镜像。

4)矢量的内容实时显示在屏幕上。

这个问题一定出现了很多次,但我没有找到令人满意的答案。这可能是一个不满意的答案,两者并不是相互排斥的,但让我们看看……

可能的解决办法:

只使用基本的C++和STL。

1)文件数据长度或最后读取位置.

每次读取后,存储最后读取位置。任何新的读取从最后读取位置开始。

缺点:

对现有文件数据的任何更改都不会被检测到。

2)散列检查.

每次读取后,存储每个文件行的散列,这些散列可稍后用于检查/读取新文件数据。

专业:

对文件内容的任何更改都反映在向量中。

Con:

每个文件行都被读取,散列和stored....twice!

随着文件大小的增加,开销也随之增加。

3)没有检查.

不要检查任何东西,只需每次读取整个文件并覆盖向量,而不管文件内容是否有更改。

专业:

对文件内容的任何更改都将反映在向量中。

Con:

EN

回答 1

Stack Overflow用户

发布于 2018-05-28 17:42:03

如果您在windows上,只需让操作系统在监视文件夹中更改时通知您即可。

https://msdn.microsoft.com/en-us/library/windows/desktop/aa365261(v=vs.85).aspx

这样,您不需要轮询,也不需要获得有关文件属性更改的信息(例如,最后一次写入)。

一旦你知道一个实际的变化发生了,你就可以阅读/更新。

不知道其他操作系统是如何做到的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50570936

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档