大文件性能读取结束

Performance reading end of large file

我需要实现类似于 tail -f 的功能来读取添加到日志文件的新行并处理日志文件滚动。这是针对 Solaris 10 的。目前,应用程序每秒检查一次文件的状态,如果文件已更改,它会打开文件,寻找接近尾部并从那里读取到文件末尾。

这似乎一切正常,但我很好奇当日志文件非常大时会对性能产生什么影响。 seek 实际上需要读取整个文件,还是它足够聪明,只加载文件末尾?

lseek 在一般情况下速度很快,即使对于大文件也是如此。

在手册页中查看更多内容。

根据特殊情况,它可能会变慢,但我从未见过那些IRL。

手册页:http://www.unix.com/man-page/opensolaris/2/lseek/