有没有人知道在Linux g ++中是否存在等价的MSVC _wrename? (cstdio文件相当于重命名使用常量为wchar_t的*代替为const char *作为参数类型的Unicode使用功能)等价的MSVC++ _wrename在Linux g ++中?
谢谢!
有没有人知道在Linux g ++中是否存在等价的MSVC _wrename? (cstdio文件相当于重命名使用常量为wchar_t的*代替为const char *作为参数类型的Unicode使用功能)等价的MSVC++ _wrename在Linux g ++中?
谢谢!
的一点是,大多数文件系统等比NTFS存储其字节 -strings文件名。通常没有明确的编码概念,但文件名必须是由零终止的非零字节的字符串。所以在所有这样的系统中,文件系统函数只需要char*
参数文件名,并且您必须自己指出如何处理编码问题(如果有的话)。
Windows是特殊的,因为NTFS中的文件名是以16位为单位的空终止字符串。这与Windows上的16位wchar_t
类型以及各种_w*
文件系统功能并行不悖。
非常有趣的感谢。还有一些我没有得到的东西。在Linux上,当使用stdio重命名时,系统如何知道我们传递了一个ascii 8位字符串或一个编码的unicode 16位字符串(作为简单的8位字符串传递)? (我不知道我的问题是否清楚......) – Juicebox
@Juicebox:我知道的文件系统没有编码的概念。只要你认为是正确的文件名就可以通过它们。顺便说一句,没有“8位ASCII”或“unicode 16位字符串”之类的东西。你可能意思是别的。 –
作为推论,大多数文件系统没有包含文件名的“字符”的概念,只有“代码单元”。你不能完全普遍地要求“这个文件名有多少个字符”(例如一个文件名可能包含一个流氓Unicode代理)。这只是一串字节与“由字符组成的文本”的概念之间的根本区别。前者非常容易,后者非常困难。 –
我的mingw-w64 CRT拷贝有这个。或者你正在寻找一个Linux/POSIX的替代品? – rubenvb
我正在寻找一个linux替代品,我应该已经精简。感谢您的回复:) – Juicebox