用UTF8编程安装FAT32文件系统

我怎样才能以挂载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”。