我目前正在研究一个项目,该项目可以挂钩到各种系统调用中,并根据调用的内容将事情写入日志。因此,例如,当我更改文件的权限时,我会向跟踪旧权限和新权限的日志文件写入一些内容。但是,我在确定要看的位置时遇到了一些麻烦。对于上面的例子,strace告诉我,“chmod”命令使用系统调用sys_fchmodat()。但是,还有一个sys_chmod()和一个sys_fchmod()。我确定内核开发者知道他们在做什么,但是我想知道:所有这些(看似)冗余的系统调用的重点是什么,并且有哪些规则用于什么? (即是在“为”与“F”开头的系统调用或者那些打算做一些具体的事情?)冗余的Linux内核系统调用
4
A
回答
6
是的,有一些命名规则。
- chmod取文件名,而fchmod取文件描述符。 stat与fstat相同。
- fchmodat需要一个文件描述符/文件名对(目录中的文件描述符和目录中文件名的文件名)。其他*在呼叫时相同;有关说明,请参阅http://kerneltrap.org/man/linux/man2/openat.2的NOTES部分。
11
历史:-)
一旦系统调用已创建它永远不能被改变,因此当需要新功能时,会创建一个新的系统调用。 (当然这意味着在创建新的系统调用之前有一个非常高的栏)。
相关问题
- 1. I2C EEPROM中的冗余值和冗余系统
- 2. 在系统调用中访问Linux内核的SuperBlock对象
- 3. 做一个简单的系统调用linux 2.6.39内核
- 4. Linux内核中的系统调用错误处理
- 5. Linux内核系统调用返回没有给出的指针
- 6. 在Linux内核3.3中添加一个新的系统调用
- 7. 没有内核的Linux文件系统
- 8. 将系统调用添加到linux内核3.8.8
- 9. 在linux 2.6.39.4内核中测试系统调用
- 10. Linux内核系统调用命名约定
- 11. 在Linux内核寻找系统调用实现
- 12. Linux内核操作系统寄存器
- 13. 内核调试Windows客户系统,从Linux系统 - 设置不工作
- 14. 系统调用kill内核内核进程
- 15. 进行冗余OpenGL调用
- 16. 冗余状态调用OpenGL
- 17. 用于少量节点的冗余分布式文件系统
- 18. 错误使用自定义的系统编译Linux内核模块调用
- 19. Linux系统调用getifaddr C++
- 20. 开放系统调用 - Linux
- 21. linux系统调用getpeername C++
- 22. Linux内核调试
- 23. Linux内核调度
- 24. Linux内核调度
- 25. 内置冗余的定义
- 26. 什么Linux操作系统来与Linux内核2.6.32
- 27. 使用arc4算法的linux内核加密子系统
- 28. 如何在Linux内核4.x中实现我自己的系统调用?
- 29. 哪个linux内核系统调用显示从磁盘读取的字节
- 30. 将Linux内核add_key和keyctl系统调用与组密钥环一起使用