linux - 冗余的 Linux 内核系统调用

标签 linux kernel system-calls

我目前正在从事一个项目,该项目挂接到各种系统调用并将内容写入日志,具体取决于调用的是哪个系统。因此,例如,当我更改文件的权限时,我会在日志文件中写入一个小条目来跟踪旧权限和新权限。但是,我无法准确确定我应该观看的位置。对于上面的示例,strace 告诉我“chmod”命令使用系统调用 sys_fchmodat()。但是,还有一个 sys_chmod() 和一个 sys_fchmod()。

我确信内核开发人员知道他们在做什么,但我想知道:所有这些(看似)冗余的系统调用有什么意义,是否有关于哪些系统调用用于什么用途的规则? (即“at”系统调用或以“f”为前缀的系统调用是为了做一些特定的事情吗?)

最佳答案

历史:-)

一旦系统调用被创建,它就不能被改变,因此当需要新的功能时,一个新的系统调用被创建。 (当然,这意味着在创建新系统调用之前有一个非常高的阈值)。

关于linux - 冗余的 Linux 内核系统调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/263563/

相关文章:

c - 为什么当我使用 copy_from_user 时,一些模糊字符添加到原始缓冲区?

javascript - 哪些内置模块负责 Node.js 中的系统调用?

linux - 使用 bash 从文本文件中提取单词

Java错误: java. lang.NoClassDefFoundError

python - pygtk 将图像缩放到宽度和高度

xml - Linux XML 解析器库

c++ - 等待信号量的进程调度

linux-kernel - 通用 netlink - PID 不是线程唯一的

c - 一个只有 fork() 这行的程序不会自己崩溃吗?

unix - 非阻塞系统调用和模式切换