如何跟踪Linux内核系统调用层中的属性变化。
将文件名创建为test.txt
touch test.txt ->在这种情况下,访问时间已更改。在VFS层,这可以用"setattr“来跟踪,但是如何在sys调用层跟踪呢?
发布于 2017-11-03 18:37:28
touch使用函数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()系统调用都会修改访问时间(如果挂载选项不阻止的话)。
除了使用显式系统调用直接操纵访问时间之外,Linux内核还使用由文件系统的atime挂载选项定义的规则来定义何时修改访问时间。在mount手册页面中搜索单词atime,以查看规则的详细信息。
查看fs/utimes.c可以帮助理解atime修改所涉及的系统调用。
https://stackoverflow.com/questions/47093387
复制相似问题