C 库 - rename() 函数



C 库函数 rename(const char *old_filename, const char *new_filename) 用于将由 old_filename 指定的文件名更改为 new_filename。

语法

以下是 C 库函数 rename() 的语法:

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

参数

此函数接受两个参数:

  • old_filename:指向一个以 null 结尾的字符串的指针,该字符串指定要重命名的文件名。这是文件的当前名称。
  • new_filename:指向一个以 null 结尾的字符串的指针,该字符串指定文件的新名称。这是您想赋予文件的新名称。

返回值

rename 函数返回整数或非整数的值

1. 0:如果操作成功。

2. 非零值:如果操作失败。确切的值可能会有所不同,但通常可以使用 errno 获取有关错误的更多信息。常见错误包括:

  • EACCES:权限被拒绝。
  • ENOENT:old_filename 指定的文件不存在。
  • EEXIST:new_filename 指定名称的文件已存在。
  • EINVAL:指定的名称无效。

示例 1:简单的重命名

此示例将名为 oldfile.txt 的文件重命名为 newfile.txt。

以下是 C 库 rename() 函数的示例。

#include <stdio.h>

int main() {
   if (rename("oldfile.txt", "newfile.txt") == 0) {
       printf("File renamed successfully.\n");
   } else {
       perror("Error renaming file");
   }
   return 0;
}

输出

以上代码产生以下结果:

File renamed successfully.

示例 2:带有错误处理的重命名

此示例尝试重命名一个不存在的文件,演示了错误处理和 errno 的用法。

#include <stdio.h>
#include <errno.h>

int main() {
   if (rename("nonexistentfile.txt", "newname.txt") != 0) {
       perror("Error renaming file");
       printf("Error code: %d\n", errno);
   } else {
       printf("File renamed successfully.\n");
   }
   return 0;
}

输出

执行以上代码后,我们将得到以下结果:

Error renaming file: No such file or directory
Error code: 2
广告
© . All rights reserved.