2012-03-15 74 views
0

如果我們試圖重命名文件夾包含包含一些文件POSIX命名行爲

EX現有的文件夾會發生什麼:一個文件夾D1在

還有另一個文件夾D2與F1文件,也D3具有f文件,如果我們試圖重命名D2 - > D3

怎麼會行爲是要刪除現有d3和嘗試重命名或任何奇怪的行爲

回答

2

正如「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,並且沒有更改。