gpt4 book ai didi

objective-c - Cocoa应用程序获取/dev/disk0s1的大小

转载 作者:行者123 更新时间:2023-12-03 16:59:29 24 4
gpt4 key购买 nike

如何在 Cocoa 应用程序中通过设备名称(例如/dev/disk0s1)获取分区的大小(以字节为单位)?也许我应该以某种方式使用磁盘仲裁框架?

最佳答案

你是对的 - 您可以使用磁盘仲裁框架获取该信息:

DASessionRef session = DASessionCreate(NULL);

if (session) {
DADiskRef disk = DADiskCreateFromBSDName(NULL, session, "/dev/disk0s1");

if (disk) {
CFDictionaryRef diskDescription = DADiskCopyDescription(disk);
NSDictionary *diskData = (NSDictionary *)diskDescription;
NSString *diskSizeKey = (NSString *)kDADiskDescriptionMediaSizeKey;
unsigned long size = [[diskData objectForKey:diskSizeKey]
unsignedLongValue];

NSLog(@"size in bytes = %lu", size);

CFRelease(diskDescription);
CFRelease(disk);
}
else NSLog(@"Error while getting DA disk for /dev/disk0s1");

CFRelease(session);
}
else NSLog(@"Error while creating DA session");

请注意,/dev/disk0s1 是 EFI 分区。

关于objective-c - Cocoa应用程序获取/dev/disk0s1的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5662683/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com