これにはIOKitを(乱用)使用できます。CoreStorage Encryptedプロパティはどこにも公式に定義されていないため、これは明らかにパブリックAPIではないことに注意してください。また、Core Storage LVが存在するパーティション(例:disk0s2)ではなく、Core StorageがOSに提供するディスクオブジェクト全体(例:disk1)を検査する必要があります。
const char *bsdDisk = "disk1";
DASessionRef session = DASessionCreate(kCFAllocatorDefault);
DADiskRef disk = DADiskCreateFromBSDName(kCFAllocatorDefault, session, "disk1");
io_service_t diskService = DADiskCopyIOMedia(disk);
CFBooleanRef isEncrypted = IORegistryEntryCreateCFProperty(diskService,
CFSTR("CoreStorage Encrypted"),
kCFAllocatorDefault,
0);
fprintf(stdout,
"%s %s encrypted\n",
bsdDisk,
(CFBooleanGetValue(isEncrypted)) ? "is" : "is not");
CFRelease(isEncrypted);
IOObjectRelease(diskService);
CFRelease(disk);
CFRelease(session);