我有一個小問題,我需要從我的c代碼或C++中創建目錄,沒關係。 但目錄名稱必須包含':','','。'等字符。在目前的一般時間, 當我嘗試創建與mkdir()
函數我得到EINVAL錯誤,但從system("mkdir ...")
一切都很好。 我該如何解決這個問題?mkdir,帶有符號的路徑名
謝謝!!!
我有一個小問題,我需要從我的c代碼或C++中創建目錄,沒關係。 但目錄名稱必須包含':','','。'等字符。在目前的一般時間, 當我嘗試創建與mkdir()
函數我得到EINVAL錯誤,但從system("mkdir ...")
一切都很好。 我該如何解決這個問題?mkdir,帶有符號的路徑名
謝謝!!!
不同的文件系統格式對於什麼是和不是有效的字符有不同的規則。對於ext2
及其後代,文件名可能包含除'/'
或'\0'
以外的任何字符。
對於FAT文件系統及其後代,無效字符列表較大,包括':'
。
檢查您正在使用的文件系統格式,並嘗試在不同的文件系統上運行您的程序。
你可以給一個與shell mkdir而不是mkdir()一起使用的例子嗎?另外手冊頁甚至沒有列出'EINVAL'作爲可能的錯誤代碼之一,這讓你很奇怪你看到它。 – FatalError 2012-04-04 16:31:54
你能發佈一段代碼嗎?聽起來好像文件名沒有正確轉義的特殊字符? – rfinz 2012-04-04 16:32:56
mkdir()在成功時返回零,在錯誤集合上返回-1 * errno *。 EINVAL不是mkdir()記錄的* errno *值。如果你爲每個字段使用固定數量的數字,在任何情況下都不是分隔符字符有點多餘? – Clifford 2012-04-04 18:10:13