首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mac上hdiutil的C++接口

Mac上hdiutil的C++接口
EN

Stack Overflow用户
提问于 2010-01-06 03:06:23
回答 3查看 1.6K关注 0票数 2

是否存在允许我的C++代码在Mac上使用hdiutil的系统调用或库。我的代码需要挂载一个可用的.dmg文件,然后操作里面的内容。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-01-06 03:17:43

如果可以使用Objective-C++,则可以使用NSTask运行命令行工具:

代码语言:javascript
复制
NSTask *task = [[NSTask alloc] init];
[task setLaunchPath: @"/usr/bin/hdiutil"];
[task setArguments:
    [NSArray arrayWithObjects: @"attach", @"/path/to/dmg/file", nil]];
[task launch];
[task waitUntilExit];
if (0 != [task terminationStatus])
    NSLog(@"Mount failed.");
[task release];

如果你需要使用“普通”系统,你可以使用C++ ():

代码语言:javascript
复制
if (0 != system("/usr/bin/hdiutil attach /path/to/dmg/file"))
    puts("Mount failed.");

或者fork()/exec()。

如果成功,您需要仔细检查hdiutil是否返回0。

票数 3
EN

Stack Overflow用户

发布于 2010-01-06 04:10:32

hdiutil使用DiskImages.framework;不幸的是,该框架是私有的(未记录,没有头文件),但是如果您喜欢冒险,可以使用try to use it anyway

票数 3
EN

Stack Overflow用户

发布于 2010-01-06 06:18:49

hdiutil有一个-plist参数,这会导致它将输出格式化为标准的OS X plist。有关处理hdiutil输出的信息,请参阅this;因为您可能需要稍微检查一下输出才能找到所需的内容,所以最初使用python这样的工具可能很容易做到这一点。然后查看here获得一些关于在C++中解析plist的建议。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2008414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档