如果我们尝试将文件夹重命名为包含某个文件的现有文件夹
,会发生什么EX:
在文件夹D1中有另一个文件夹D2和f1文件,如果我们尝试重命名d2 - > D3
该行为是如何删除现有的d3并尝试重命名或任何奇怪的行为
答案 0 :(得分:2)
正如“parsifal”所回答的,可以找到rename()的文档,例如:在http://pubs.opengroup.org/onlinepubs/007904875/functions/rename.html
我在这里添加了自己的答案,因为parsifal的答案留下了一个至关重要的细节,即:
If new names an existing directory, it shall be required to be an empty directory.
在errno号码列表中,我们有
[EEXIST] or [ENOTEMPTY] The link named by new is a directory that is not an empty directory
因此,如果new指向非空目录,rename()将返回-1,则errno将设置为EEXIST或ENOTEMPTY,并且未进行任何更改。
答案 1 :(得分:1)
POSIX文档可在线获取,Google搜索您的问题会将您带到此处:http://pubs.opengroup.org/onlinepubs/007904875/functions/rename.html
如果新参数指定的目录存在,则应将其删除并将旧名称重命名为new。