在Linux上用C挂载NTFS设备?

在Linux上用C挂载NTFS设备?,第1张

概述我正在尝试在我的C应用程序中安装外部驱动器.我最初尝试使用mount(2),但这失败了: int ret = mount(deviceName.c_str(), mountPoint.c_str(), fsType.c_str(), 0, NULL); errno是19,ENODEV(文件系统类型未在内核中配置) 但是,如果我切换到使用mount(8),它工作正常: std::string cmd 我正在尝试在我的C应用程序中安装外部驱动器.我最初尝试使用mount(2),但这失败了:

int ret = mount(devicename.c_str(),mountPoint.c_str(),fsType.c_str(),NulL);

errno是19,ENODEV(文件系统类型未在内核中配置)

但是,如果我切换到使用mount(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这是一个实现mount.8完成的整个装载魔法的库.较新的安装版本也使用它.它在util-linux年提供.

总结

以上是内存溢出为你收集整理的在Linux上用C挂载NTFS设备?全部内容,希望文章能够帮你解决在Linux上用C挂载NTFS设备?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1025060.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存