如果我們試圖重命名文件夾包含包含一些文件POSIX命名行爲
EX現有的文件夾會發生什麼:一個文件夾D1在
還有另一個文件夾D2與F1文件,也D3具有f文件,如果我們試圖重命名D2 - > D3
怎麼會行爲是要刪除現有d3和嘗試重命名或任何奇怪的行爲
如果我們試圖重命名文件夾包含包含一些文件POSIX命名行爲
EX現有的文件夾會發生什麼:一個文件夾D1在
還有另一個文件夾D2與F1文件,也D3具有f文件,如果我們試圖重命名D2 - > D3
怎麼會行爲是要刪除現有d3和嘗試重命名或任何奇怪的行爲
的POSIX文件可在網上,和谷歌搜索你的問題需要你這裏:http://pubs.opengroup.org/onlinepubs/007904875/functions/rename.html
如果由新參數命名的目錄存在,它應該被刪除並且舊的被重命名爲new。
正如「parsifal」所回答的那樣,可以找到rename()的文檔,例如,在http://pubs.opengroup.org/onlinepubs/007904875/functions/rename.html
我在這裏將我自己的答案,因爲帕西法爾答案遺漏了一個重要細節,即:
If new names an existing directory, it shall be required to be an empty directory.
在錯誤號號碼的列表,我們有
[EEXIST] or [ENOTEMPTY] The link named by new is a directory that is not an empty directory
因此,如果新指向一個非空目錄,rename()將返回-1,errno將被設置爲EEXIST或ENOTEMPTY,並且沒有更改。