如何在目录中找到最新的文件?

时间:2011-04-13 19:11:35

标签: c linux

假设我在/ tmp / myDir中有一个目录,其中文件由守护程序不断创建,修改和销毁。 我需要定期(每45秒)监视最后创建的文件。要做到这一点,我必须确定在上次检查后创建了哪些文件。 从c守护进程那里做到这一点的最佳方法是什么?

如果可能,该方法应避免在每次检查期间打开目录中的每个文件。

2 个答案:

答案 0 :(得分:1)

inotify非常漂亮......如果您不能使用它,我建议您为目录中的每个文件获取st_mtime,并将其与(time(0) - 45)进行比较。如果它更大,那么它在你的45秒窗口内。如果您不是创建一个持续运行的守护进程,请将您的可执行文件放在crontab上。

答案 1 :(得分:0)

调用scandir并使用filter回调函数仅保留相关文件。你可能不得不在每个文件上使用fstat