2014-07-23 20 views
7

Tôi có một số mã mà tôi chỉ muốn chạy nếu người dùng không khởi động ở chế độ an toàn. Có cách nào sử dụng các API chuẩn của CoreFoundation hoặc C mà tôi có thể phát hiện được không?Cách phát hiện chế độ an toàn trên OSX

EDIT: đây là mã của tôi nhờ vào câu trả lời chấp nhận của tôi:

#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 
} 
+0

Mã của bạn bắt đầu như thế nào trong trường hợp bình thường? –

Trả lời

6

Bạn có thể sử dụng sysctl như thế này:

sysctl -n kern.safeboot 

Nó cung cấp cho 1 khi ở chế độ safe boot0 khi ở chế độ bình thường .

+0

Cảm ơn bạn, giải pháp đẹp –

+0

Niềm vui của tôi! +1 để chia sẻ mã của bạn :-) –

Các vấn đề liên quan