我目前正在开发一个项目,它会钩入各种系统调用并将内容写入日志,具体取决于哪个调用被调用。例如,当我更改文件的权限时,我会在跟踪旧权限和新权限的日志文件中写入一条小记录。然而,我有些困惑,不确定应该在哪里进行监视。对于上面的示例,strace告诉我“chmod”命令使用系统调用sys_fchmodat()。但是,也有sys_chmod()和sys_fchmod()。
我相信内核开发人员知道他们在做什么,但我想知道:所有这些(看似)多余的系统调用的目的是什么,是否有任何规则来指定使用哪些调用?(即,带有“at”系统调用或以“f”为前缀的调用是否有特定的用途?)
我相信内核开发人员知道他们在做什么,但我想知道:所有这些(看似)多余的系统调用的目的是什么,是否有任何规则来指定使用哪些调用?(即,带有“at”系统调用或以“f”为前缀的调用是否有特定的用途?)