当新行';它是由另一个进程写入的 什么是C++中最快的方法,从另一个进程编写的文件中读取新行。或者如何通知我的程序文件中有新行,以便读取它?(在linux中)

当新行';它是由另一个进程写入的 什么是C++中最快的方法,从另一个进程编写的文件中读取新行。或者如何通知我的程序文件中有新行,以便读取它?(在linux中),c++,C++,假设操作系统支持并发文件访问,您需要做的就是查找EOF,等待状态更改,然后尝试读取文件。您可能需要添加睡眠来减缓循环 POIX上的“tail”命令(带有-f选项)实现了这一点-。最快的方法是使用管道或事件(对于Windows应用程序) 如果您仍然想要使用文件,首先您需要确保文件已被真正修改(使用seek并将其与prew值进行比较)。然后去“寻找的最后一次机会”读一读 而且最好使用互斥锁(如果您从文件中读取数据)。在我的脑海中,您是否尝试过这样的方法: 计算文件中的行数,并将其存储。 获取文件的大

假设操作系统支持并发文件访问,您需要做的就是查找EOF,等待状态更改,然后尝试读取文件。您可能需要添加睡眠来减缓循环


POIX上的“tail”命令(带有-f选项)实现了这一点-。

最快的方法是使用管道或事件(对于Windows应用程序)

如果您仍然想要使用文件,首先您需要确保文件已被真正修改(使用seek并将其与prew值进行比较)。然后去“寻找的最后一次机会”读一读


而且最好使用互斥锁(如果您从文件中读取数据)。

在我的脑海中,您是否尝试过这样的方法:

计算文件中的行数,并将其存储。 获取文件的大小(谷歌它,我不想破坏乐趣:D)。 然后,当文件大小更改时,尝试读取存储的最后一行u。。。一次又一次


玩得开心:)

使用
inotify
获取有关文件更改的通知,如果文件现在比以前大,则从上一个pos重新读取。

是否确实需要用于进程间运行的文件?改用管道。管道有通知内部数据的机制,而文件没有。我犹豫地同意这个答案是有帮助的。然而,95%的人说OP需要插座/管道等。实际上,这是一个微不足道的情况。有一个非常简单的例子,外部应用程序如何从文件中读取最后一个数据(无需同步):。如果你需要更多的详细资料,告诉我。