是否存在允许我的C++代码在Mac OS X上使用hdiutil的系统调用或库。我的代码需要挂载可用的.dmg文件,然后操纵其中的内容。

最佳答案

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

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++,则可以使用system():
if (0 != system("/usr/bin/hdiutil attach /path/to/dmg/file"))
    puts("Mount failed.");

或fork()/ exec()。

您需要仔细检查hdiutil是否实际上返回0以获取成功。

关于c++ - Mac上的hdiutil的C++接口(interface),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2008414/

10-16 19:14