C ++中最快的方法是从另一个进程写入的文件中读取新行。或者如何通知我的程序文件中有新行如此阅读? (在linux中)
答案 0 :(得分:1)
假设操作系统支持并发文件访问,您需要做的就是寻找EOF,等待stat更改然后尝试从文件中读取。您可能希望在睡眠中添加以减慢循环。
POISX上的'tail'命令(带-f选项)实现了这个 - source code is available。
答案 1 :(得分:1)
最快的方法是使用管道或事件(对于Windows应用程序)。
如果你仍然想要使用文件,首先你确实需要确保文件已被真正修改过(使用搜索并将其与prew值进行比较)。然后去“寻找的最后一个val”并阅读它。
最好使用互斥锁(如果你从文件中读取数据)。
答案 2 :(得分:0)
从我的头脑中,你是否尝试过这样的事情:
计算文件中的行数,然后存储它。 获取文件的大小(谷歌它,我不想破坏乐趣:D)。 然后尝试从文件大小改变时存储的最后一行读取......并一次又一次。
玩得开心:)
答案 3 :(得分:0)
使用inotify
获取有关文件更改的通知,然后重新读取上一个pos,如果该文件现在比以前更大。