我想使用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