如何安全地使用新的Linux功能?

wlf*_*myd 6 c linux

我正在编写使用sched_setaffinity的代码,这需要内核2.5.8或更高版本.我一直试图找出这些事情是否可行:

  1. 使用较旧内核的系统可以优雅地编译它,也许只是完全忽略该代码段​​.
  2. 如果我发送一个旧内核的人编译二进制文件,它将跳过此函数或只是打印一个警告.

我想我的问题是,如何安全地使用新的内核函数,而不会在使用旧系统时破坏整个应用程序?

And*_*oss 2

您是否试图让您的程序链接或运行?您可以直接通过 glibc 函数调用系统调用,syscall()而无需最新的 C 库。显然,在没有支持的早期系统上它会失败(快速测试显示内核对于未实现的系统调用号返回 -1 == ENOSYS),因此您需要对此进行测试。