如何在Linux系统调用层中跟踪文件的属性更改

时间:2017-11-03 10:22:30

标签: linux linux-kernel kernel linux-device-driver kernel-module

如何跟踪Linux内核系统调用层中的属性更改。

将文件名创建为test.txt

touch test.txt - >在这种情况下,访问时间发生了变化在VFS层中,这可以通过" setattr"来跟踪。但是如何在sys调用层中跟踪?

1 个答案:

答案 0 :(得分:0)

触摸使用函数utimensat()来做到这一点。您可以使用'strace touch test.txt'跟踪它。 http://pubs.opengroup.org/onlinepubs/9699919799/utilities/touch.html http://pubs.opengroup.org/onlinepubs/9699919799/functions/utimensat.html

任何write()或read()系统调用都将修改访问时间(如果挂载选项不阻止它)。

在使用像“touch”这样的显式系统调用直接操作访问时间之外,Linux内核使用文件系统的atime挂载选项定义的规则来定义何时修改访问时间。在mount手册页中搜索atime一词,以查看规则的详细信息。

查看fs / utimes.c有助于理解atime修改所涉及的系统调用。