Linux g ++中的MSVC ++ _wrename的等价物?

时间:2011-06-22 15:02:39

标签: linux visual-c++ unicode g++ rename

有谁知道linux g ++中是否存在等效的MSVC _wrename ? (相当于cstdio文件重命名函数,使用 const wchar_t * 而不是 const char * 作为unicode使用的参数类型)

谢谢!

2 个答案:

答案 0 :(得分:3)

关键是大多数文件系统其他而不是NTFS将其文件名存储在 byte -strings中。通常没有明确的编码概念,但文件名必须是以零结尾的非零字节串。所以在所有这样的系统上,文件系统函数只需要char*个参数来获取文件名,你必须自己解决如何处理编码问题(如果有的话)。

Windows是特殊的,因为NTFS中的文件名是以16位为单位的以空字符结尾的字符串。这与Windows上的16位wchar_t类型和各种_w*文件系统函数密切相关。

答案 1 :(得分:0)

这是特定于平台的。我担心你不得不以某种方式将你的const wchar_t *转换为const char *。在Linux上,我认为你可以使用iconv函数。

编辑:Boost可能对此有所帮助