C++ Mac 上 hdiutil 的界面
是否存在允许我的 C++ 代码在 Mac OS X 上使用 hdiutil 的系统调用或库。我的代码需要安装可用的 .dmg 文件,然后操作其中的内容。
Does a system call or library exist that would allow my C++ code to use hdiutil on Mac OS X. My code needs to mount an available .dmg file and then manipulate what's inside.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果您可以使用 Objective-C++,则可以使用 NSTask 来运行命令行工具:
如果您需要使用“普通”C++,则可以使用 system():
或 fork()/exec()。
您需要仔细检查
hdiutil
是否实际返回 0 表示成功。If you can use Objective-C++, you can use NSTask to run command line tools:
If you need to use "plain" C++, you can use system():
or fork()/exec().
You'll need to double-check whether
hdiutil
actually returns 0 for success or not.hdiutil
使用 DiskImages.framework;不幸的是,该框架是私有的(无文档,没有标题),但如果您喜欢冒险,您可以 尝试使用它。hdiutil
uses DiskImages.framework; unfortunately, the framework is private (undocumented, no headers), but if you're feeling adventurous, you can try to use it anyway.hdiutil
有一个-plist
参数,使其将输出格式化为标准 OS X plist。有关处理的信息,请参阅此 hdiutil 的输出;因为您可能需要检查一下输出才能找到您需要的内容,所以最初使用python
之类的东西可能很容易做到这一点。然后请参阅此处,了解有关在 C++ 中解析 plist 的一些建议。hdiutil
has a-plist
argument that causes it to format its output as a standard OS X plist. See this for info on processing the output from hdiutil; because you'll likely have to examine the output a bit to find what you need, it may be easy to do this initially with something likepython
. Then see here for some suggestions on parsing plists in C++.