C - 使用进程监视文件

时间:2012-05-26 16:05:03

标签: c file monitoring process

我必须观察一定数量的日志文件(可以随时更改),以查看这些单词是否在结构中时是否包含“禁止”一词。在实施过程中,我对实施的最佳方法存有疑问。

  1. 有一个进程来分析要监视的文件列表是不是一个好主意,每当我们看到一个进行了更改时,我们会发送一个进程来查看是否包含一些“禁止”的单词?
  2. 作为日志文件,修改只发生在最后,因此要查看文件是否已更改,我们必须查看是否已修改大小。做一个“主动等待”:
  3. While(1)
     if (“old size!= new size”)
      send process run for this file to see if contains some words “forbidden”.
    

    有人可以给我一些想法并告诉我,我在做什么是不正确的?

1 个答案:

答案 0 :(得分:0)

这似乎与less对单个文件的作用非常相似。使用strace我偷看了less做了什么,它似乎只保留一个打开的文件描述符,然后在循环中休眠一秒钟并尝试读取更多输入。如果没有太多的日志文件需要监控(你不介意为每个文件保留一个打开的文件描述符),也许你可以使用这种方法。

相关问题