C 库函数 - rename()

C 标准库 - <stdio.h> C 标准库 - <stdio.h>

rename() 是 C 标准库中用于重命名文件或目录的函数。

rename() 在 <stdio.h> 头文件中定义。

C 库函数 int rename(const char *old_filename, const char *new_filename)old_filename 所指向的文件名改为 new_filename

声明

下面是 rename() 函数的声明。

int rename(const char *old_filename, const char *new_filename)

参数

  • old_filename -- 原始文件名(包含路径时需提供完整路径)。
  • new_filename -- new_filename:新文件名(同样可以包含路径)。

返回值

  • 0 :执行成功(文件/目录重命名成功)。
  • 非 0 :执行失败(常见错误原因有权限不足、文件不存在、目标已存在等)。

使用注意

文件必须存在,否则会返回错误。

如果目标文件 new_filename 已经存在,不同系统的处理方式可能不同:

  • 在大多数 Unix/Linux 上,rename() 会 直接覆盖 目标文件。
  • 在 Windows 上,若目标文件存在,rename() 会 失败。

不能跨不同的挂载点(分区/设备)重命名。


实例

下面的实例演示了 rename() 函数的用法。

实例

#include <stdio.h>

int main () {
   int ret;
   char oldname[] = "file.txt";
   char newname[] = "newfile.txt";
   
   ret = rename(oldname, newname);

   if(ret == 0)  {
      printf("文件重命名成功");
   } else   {
      printf("错误:不能重命名该文件");
   }
   
   return(0);
}

假设我们有一个文本文件 file.txt,它的内容如下。我们将使用上面的程序来重命名该文件。让我们编译并运行上面的程序,这将生成下面的消息,且文件被重命名为 newfile.txt 文件。

文件重命名成功

C 标准库 - <stdio.h> C 标准库 - <stdio.h>