我正試圖在我的C++應用程序中安裝外部驅動器。我本來試圖用支架(2),但這個失敗:在linux上用C++掛載NTFS設備?
int ret = mount(deviceName.c_str(), mountPoint.c_str(), fsType.c_str(), 0, NULL);
錯誤號是19,ENODEV
(文件系統的類型在內核中未配置)
但是,如果我切換到使用安裝(8)它的工作原理好:
std::string cmd = "mount -t " + fsType + " " + deviceName + " " + mountPoint;
int ret = system(cmd.c_str());
mount(2)有一個不同的可接受的文件系統類型列表嗎?這是一個NTFS設備,所以我使用ntfs-3g
作爲fstype。我檢查了/ proc/filesystems,看到這個沒有列出,所以我嘗試了fuseblk
,但這只是將錯誤更改爲22,EINVAL
。
使用mount(2)掛載NTFS設備的正確方法是什麼?
啊,我承認我已經假設在引擎蓋下,mount.2會調用mount.8。這就解釋了他們爲什麼不能以同樣的方式運作。感謝您指向'libmount',我會檢查出來。 – jam