我使用Linux 2.1.57中引入的函数
prctl
。
我执行以下操作:
// function 'prctl' is linux only and was introduced in version
#ifdef __linux__
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,1,57)
prctl(PR_SET_PDEATHSIG, SIGKILL);
#endif
#endif
但是如果我在较低版本的 Linux 中运行我的二进制文件会发生什么? 程序会崩溃或无法加载?
我是否需要通过运行时替换编译时检查(使用
utsname()->release
)或同时使用编译和运行时检查?
如果您在现代 Linux 上编译程序但尝试在较旧的 Linux 上运行它,则有 2 种可能性:
无论如何,都无法正常工作。