有谁知道linux g ++中是否存在等效的MSVC _wrename ? (相当于cstdio文件重命名函数,使用 const wchar_t * 而不是 const char * 作为unicode使用的参数类型)
谢谢!
答案 0 :(得分:3)
关键是大多数文件系统其他而不是NTFS将其文件名存储在 byte -strings中。通常没有明确的编码概念,但文件名必须是以零结尾的非零字节串。所以在所有这样的系统上,文件系统函数只需要char*
个参数来获取文件名,你必须自己解决如何处理编码问题(如果有的话)。
Windows是特殊的,因为NTFS中的文件名是以16位为单位的以空字符结尾的字符串。这与Windows上的16位wchar_t
类型和各种_w*
文件系统函数密切相关。
答案 1 :(得分:0)
这是特定于平台的。我担心你不得不以某种方式将你的const wchar_t *转换为const char *。在Linux上,我认为你可以使用iconv函数。
编辑:Boost可能对此有所帮助