我怎样才能以挂载UTF8的方式使用“mount()”函数(来自“mount.h”,参见“man 2 mount”)装载FAT / FAT32设备?
这是我用来安装它直到现在的相关代码:
mount_result = mount(device_node, device_mount_point, fstype, MS_NOATIME, "");
谢谢,Nicola
mount命令的最后一个参数是由内核中的文件系统驱动程序解释的字符串。 这是相同的,你会传递给mount shell命令。 对于UTF8我相信字符串应该是:
mount_result = mount(device_node, device_mount_point, fstype, MS_NOATIME, "iocharset=utf8");
从手册:
数据参数由不同的文件系统解释。 通常它是由这个文件系统理解的逗号分隔选项的字符串。
从mount(8)的手册页,“vfat的挂载选项”:
utf8:UTF8是控制台使用的Unicode文件系统安全的8位编码。 可以使用此选项启用文件系统。 如果'uni_xlate'被设置,UTF8被禁用。
因此,这应该给你想要的行为:
mount_result = mount(device_node, device_mount_point, fstype, MS_NOATIME, "utf8");
我想你可能需要尝试“utf8 = 1”。