C - 使用进程监视文件

标签 c file monitoring process

我必须查看一定数量的日志文件(可以随时更改)以查看它们是否包含单词 «forbidden» 当这个词在结构中时。在实现过程中,我对实现实现的最佳方式存有疑问。

  1. 是否有一个流程来分析要监控的文件列表,并且每次我们看到文件发生变化时,我们都会发送一个流程来查看其中是否包含“禁止”一词?<
  2. 作为日志文件,修改只在最后发生,所以要查看文件是否发生变化,我们必须查看大小是否也被修改。进行“主动等待”:
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/

相关文章:

c - 监控服务器的线程性能

java - 远程JMX监控 Jconsole JDK 1.7.0_91

mysql - 监控服务器上的应用程序

C、如何调用一个函数

c - 如何确定时间日期戳

java - 在 Java 中读取文本文件时出错

C : text file, 字符串比较等

单个套接字可以用于 C 中的全双工通信吗?

c - 地址的数据大小

Python:找不到 os.listdir 文件