我想使用C++挂载文件系统。我应该使用mount()
系统调用,还是只执行mount
二进制文件?我应该使用mount()还是/ usr/bin/mount
很显然,系统调用会更快,而且我会花更少的时间来构建命令行参数并解析错误消息和内容。然而,在阅读了第(2)项之后,我不清楚论证中有什么限制(如果有的话)。
我特别希望能够挂载磁盘映像文件以及实际的物理磁盘。我也希望能够通过指定从设备/图像开始的偏移来安装单个文件系统。我不知道您是否可以通过一次性呼叫mount()
来完成这项工作,或者您是否需要先手动创建循环设备。 (我也不知道它是如何努力创造一个循环设备—我假定这也很容易...)
如果设置这个东西了右边是相当复杂的,那么它可能更简单和易于调用二进制的mount
。但如果只是一个系统调用,直接调用mount()
似乎更清洁。那么哪一个可能会给我最少的问题呢?
考虑到您通常安装文件系统的频率,我不会对性能提出任何问题。我只是尝试系统调用,因为它绝对是*清晰*,如果我在15分钟内无法使用它 - 二进制,我来了。请记住,您不应该相信它在'/ usr/bin/mount'上 - 总是调用'which mount'来确定它是否受支持以及它在哪里。 – 2014-09-19 10:17:33
通常使用系统命令是应该避免的;我假设你知道这一点...... – 2014-09-19 10:18:37
你可以获取'mount'的源代码并复制和粘贴你需要的东西。不考虑许可证问题... – rodrigo 2014-09-19 10:29:38