【发布时间】:2009-10-10 08:01:25
【问题描述】:
如何在不使用标准重命名功能的情况下以编程方式在 unix 平台上重命名文件?
【问题讨论】:
-
如果你知道怎么做,就直接回答问题而不是问原因..
如何在不使用标准重命名功能的情况下以编程方式在 unix 平台上重命名文件?
【问题讨论】:
重命名文件的历史方法是使用 link(2) 创建指向同一文件的新硬链接,然后使用 unlink(2) 删除旧名称。
【讨论】:
以下是一个有点讽刺的解决方案,它本身不使用标准的rename(2) 系统调用:
#include <stdlib.h>
if (system("mv file1 file2") != 0)
perror("system");
这是rename(2)的间接使用,这个系统调用是由mv(1)调用的。
【讨论】: