当前位置:  开发笔记 > 运维 > 正文

冗余Linux内核系统调用

如何解决《冗余Linux内核系统调用》经验,为你挑选了2个好方法。

我目前正在开发一个项目,它挂钩到各种系统调用并将内容写入日志,具体取决于调用的是哪一个.因此,例如,当我更改文件的权限时,我会在跟踪旧权限和新权限的日志文件中写一个小条目.但是,我在确定我应该注意的位置时遇到了一些麻烦.对于上面的例子,strace告诉我"chmod"命令使用系统调用sys_fchmodat().但是,还有一个sys_chmod()和一个sys_fchmod().

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



1> Douglas Leed..:

历史:-)

一旦创建了系统调用,就无法对其进行更改,因此当需要新功能时,将创建新的系统调用.(当然这意味着在创建新的系统调用之前有一个很高的标准).



2> CesarB..:

是的,有一些命名规则.

chmod采用文件名,而fchmod采用文件描述符.stat与fstat相同.

fchmodat采用文件描述符/文件名对(目录的文件描述符和目录中文件名的文件名).其他*在呼叫时相同; 有关说明,请参阅http://kerneltrap.org/man/linux/man2/openat.2的NOTES部分.

推荐阅读
mobiledu2402852357
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有