我可以在哪里获取每个系统调用所需的最低Linux版本的完整列表? 我正在寻找这种形式的一般性答案:“如果我使用系统调用X,则我的代码可以运行的Linux的最低版本是什么?”
我可以在哪里获取每个系统调用所需的最低Linux版本的完整列表? 我正在寻找这种形式的一般性答案:“如果我使用系统调用X,则我的代码可以运行的Linux的最低版本是什么?”
这些信息可以在syscalls(2)
手册页面中找到。对于那些没有指定内核版本的系统调用,该系统调用出现在1.0或更早的内核版本中。
Linus一直批评用户空间检查特定内核版本以了解某个功能是否可用的做法-推荐的方法是测试你想要的功能(未实现的系统调用会返回ENOSYS
)。
其中一个原因是版本号并不像它们看起来的那样重要-大多数用户实际运行的发行版内核通常从更新的内核版本中借鉴了一些特性。在这方面,有些内核甚至可以说是真正的弗兰肯斯坦怪物。
clock_gettime
,但它的 man 手册没有详细说明。 - R.. GitHub STOP HELPING ICE在文件include/asm-generic/unistd.h中有一份系统调用列表。您可以查看该文件的历史记录:
除x86架构以外的其他架构的系统调用我不确定是否存在细节差异。