2014-07-23 16 views
7

Ho un codice che voglio eseguire solo se l'utente non si è avviato in modalità provvisoria. C'è un modo per utilizzare CoreFoundation o C API standard che posso rilevare?Come rilevare la modalità provvisoria su OSX

EDIT: Ecco il mio codice grazie alla mia risposta accettata:

#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

Come si avvia il codice nel caso normale? –

risposta

6

È possibile utilizzare sysctl come questo:

sysctl -n kern.safeboot 

1 in modalità safe boot e 0 in modalità normale .

+0

Grazie, bellissima soluzione –

+0

Piacere mio! +1 per condividere il tuo codice :-) –

Problemi correlati