【问题标题】:How do I rename a file?如何重命名文件?
【发布时间】:2009-10-10 08:01:25
【问题描述】:

如何在不使用标准重命名功能的情况下以编程方式在 unix 平台上重命名文件?

【问题讨论】:

标签: c linux unix


【解决方案1】:

重命名文件的历史方法是使用 link(2) 创建指向同一文件的新硬链接,然后使用 unlink(2) 删除旧名称。

【讨论】:

  • 这不适用于目录。有充分的理由进行原子重命名 (2)。
【解决方案2】:

以下是一个有点讽刺的解决方案,它本身不使用标准的rename(2) 系统调用:

#include <stdlib.h>

if (system("mv file1 file2") != 0)
    perror("system");

这是rename(2)的间接使用,这个系统调用是由mv(1)调用的。

【讨论】:

  • 不要忘记,当源位置和目标位置位于不同的文件系统上时,'mv' 比 'rename()' 做得更多。
猜你喜欢
  • 1970-01-01
  • 2020-03-23
  • 1970-01-01
  • 2010-09-26
  • 2014-01-15
  • 2016-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多