#C 语言标准库函数 rename
/*********************************************
* @brief 重命名文件
* @param old_filename 要重命名的文件路径
* @param new_filename 新的文件路径
* @return 是(0)否(非 0)成功
********************************************/
int rename(const char* old_filename, const char* new_filename);
说明
删除文件。
参数
old_filename
- 要重命名的文件路径new_filename
- 新的文件路径
返回值
- 成功返回 0
- 失败时返回非 0
#示例
#include <stdio.h>
int main(void)
{
// 生成临时文件名
char old_filename[L_tmpnam];
char new_filename[L_tmpnam];
tmpnam(old_filename);
tmpnam(new_filename);
// 创建文件
FILE* fp = fopen(old_filename, "wb");
if (fp == NULL)
{
perror("文件创建失败");
return 1;
}
printf("创建了文件 %s\n", old_filename);
fputs("ABCD", fp); // 写文件
// 关闭文件
fclose(fp);
// 重命名文件
if (rename(old_filename, new_filename) == 0)
{
printf("文件重命名为 %s\n", new_filename);
}
// 打开文件
fp = fopen(new_filename, "rb");
if (fp == NULL)
{
perror("文件打开失败");
return 1;
}
// 读取并查看整个文件
for (int i = 0; i < 10; i += 1)
{
int ch = fgetc(fp); // 返回 int
if (ch == EOF) // 失败检查
break;
putchar(ch);
}
putchar('\n');
// 关闭文件
fclose(fp);
return 0;
}
运行结果:
创建了文件 /tmp/filezVBCLg 文件重命名为 /tmp/fileqaUUwM ABCD
#推荐阅读
- C 语言标准库函数 fopen
- C 语言标准库函数 fclose
- C 语言标准库函数 remove
- C 语言标准库函数 tmpfile
- C 语言标准库函数 tmpnam
- rename - cppreference
- rename - POSIX
#参考标准
- C23 standard (ISO/IEC 9899:2024):
- 7.21.4.2 The rename function (p: TBD)
- C17 standard (ISO/IEC 9899:2018):
- 7.21.4.2 The rename function (p: TBD)
- C11 standard (ISO/IEC 9899:2011):
- 7.21.4.2 The rename function (p: 302-303)
- C99 standard (ISO/IEC 9899:1999):
- 7.19.4.2 The rename function (p: 268-269)
- C89/C90 standard (ISO/IEC 9899:1990):
- 4.9.4.2 The rename function