Réponses:
La commande system_profiler fournit une réponse directe qui est facilement lisible par l'homme (en supposant que vous utilisez la version 10.3 ou une version plus récente), mais vous pouvez également utiliser ioreg pour la tâche, car elle se termine généralement plus rapidement.
system_profiler SPHardwareDataType est le type de données qui contient les informations de base sur le matériel. Vous pouvez utiliser grep ou awk pour réduire les éléments au besoin:
system_profiler SPHardwareDataType | awk '/Serial/ {print $4}'ou
ioreg -l | awk '/IOPlatformSerialNumber/ { print $4;}'L’exécution de ces deux commandes prend entre 0,5 et 0,2 seconde sur un Mac SSD moderne, donc si vous souhaitez optimiser la commande et supprimer le message « vous pouvez obtenir votre réponse en 0.005s ou plus:
ioreg -c IOPlatformExpertDevice -d 2 | awk -F\" '/IOPlatformSerialNumber/{print $(NF-1)}'Cela fonctionne aussi…
ioreg -l | grep IOPlatformSerialNumberawkversion de supprimer les 600 lignes de ioregsortie que nous ne voulons pas voir. (aussi - ne dérange pas les électeurs qui se
                    Pour faciliter la mémorisation, utilisez une recherche insensible à la casse:
ioreg -l | grep -i serialnumber | grep -i platformExemple C ++:
#include <CoreFoundation/CoreFoundation.h>
#include <IOKit/IOKitLib.h>
std::string 
getSerialNumber()
{
   CFStringRef serial;
    char buffer[32] = {0};
    std::string seriaNumber;
io_service_t platformExpert = IOServiceGetMatchingService(kIOMasterPortDefault,
                                                          IOServiceMatching("IOPlatformExpertDevice"));
if (platformExpert)
{
    CFTypeRef serialNumberAsCFString = IORegistryEntryCreateCFProperty(platformExpert,
                                                                       CFSTR(kIOPlatformSerialNumberKey),
                                                                       kCFAllocatorDefault, 0);
    if (serialNumberAsCFString) {
        serial = (CFStringRef)serialNumberAsCFString;
    }
    if (CFStringGetCString(serial, buffer, 32, kCFStringEncodingUTF8)) {
        seriaNumber = buffer;
    }
    IOObjectRelease(platformExpert);
}
return seriaNumber;
}
ioregest presque instantané sur mon MBPR.system_profilerbien que plus rapide sur ce mac que mes plus anciens est beaucoup plus lent.