有沒有人知道在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