如果我们试图重命名文件夹包含包含一些文件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,并且没有更改。