我有一些仅在用户未以安全模式启动时才运行的代码。有没有一种我可以检测到的使用CoreFoundation或C标准API的方法?
编辑:这是我的代码,这要感谢我接受的答案:
#include <sys/sysctl.h>
...
int safeBoot;
int mib_name[2] = { CTL_KERN, KERN_SAFEBOOT };
size_t length = sizeof(safeBoot);
if (!sysctl(mib_name, 2, &safeBoot, &length, NULL, 0)) {
if (safeBoot == 1) {
// We are in safe mode
} else {
// Normal mode. Continue…
}
} else {
// Couldn't find safe boot information
}
最佳答案
您可以像这样使用sysctl
:
sysctl -n kern.safeboot
在
1
模式下提供safe boot
,在普通模式下提供0
。