我必须查看一定数量的日志文件(可以随时更改)以查看它们是否包含单词 «forbidden» 当这个词在结构中时。在实现过程中,我对实现实现的最佳方式存有疑问。
- 是否有一个流程来分析要监控的文件列表,并且每次我们看到文件发生变化时,我们都会发送一个流程来查看其中是否包含“禁止”一词?<
- 作为日志文件,修改只在最后发生,所以要查看文件是否发生变化,我们必须查看大小是否也被修改。进行“主动等待”:
While(1)
if (“old size!= new size”)
send process run for this file to see if contains some words “forbidden”.
谁能给我一些想法,并告诉我我的做法是否不正确?
最佳答案
对于单个文件,这看起来与 less
所做的非常相似。使用 strace
我瞥了一眼 less
做了什么,它似乎只是保持一个打开的文件描述符,然后在循环中休眠一秒钟并尝试读取更多输入.如果没有太多日志文件需要监控(并且您不介意为每个文件保留一个打开的文件描述符),也许您可以使用这种方法。
关于C - 使用进程监视文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10767791/