Namespaces
Variants

rename

From cppreference.net
< c ‎ | io
定义于头文件 <stdio.h>
int rename ( const char * old_filename, const char * new_filename ) ;

更改文件的文件名。该文件由指向 old_filename 的字符字符串标识。新文件名由指向 new_filename 的字符字符串标识。

如果 new_filename 已存在,其行为由实现定义。

目录

参数

old_filename - 指向以空字符结尾的字符串的指针,该字符串包含待重命名文件的路径标识
new_filename - 指向以空字符结尾的字符串的指针,该字符串包含文件的新路径

返回值

0 表示成功,非零值表示错误。

注释

POSIX 标准对该函数的语义规定了更多具体细节。

示例

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    FILE* fp = fopen("from.txt", "w"); // 创建文件 "from.txt"
    if (!fp)
    {
        perror("from.txt");
        return EXIT_FAILURE;
    }
    fputc('a', fp); // 写入 "from.txt"
    fclose(fp);
    int rc = rename("from.txt", "to.txt");
    if (rc)
    {
        perror("rename");
        return EXIT_FAILURE;
    }
    fp = fopen("to.txt", "r");
    if(!fp)
    {
        perror("to.txt");
        return EXIT_FAILURE;
    }
    printf("%c\n", fgetc(fp)); // 从 "to.txt" 读取
    fclose(fp);
    return EXIT_SUCCESS;
}

可能的输出:

a

参考文献

  • C23 标准 (ISO/IEC 9899:2024):
  • 7.21.4.2 rename 函数 (p: TBD)
  • C17 标准 (ISO/IEC 9899:2018):
  • 7.21.4.2 rename 函数 (p: TBD)
  • C11 标准 (ISO/IEC 9899:2011):
  • 7.21.4.2 rename 函数 (p: 302-303)
  • C99标准(ISO/IEC 9899:1999):
  • 7.19.4.2 rename函数(页码:268-269)
  • C89/C90 标准 (ISO/IEC 9899:1990):
  • 4.9.4.2 rename 函数

参见

删除文件
(函数)
C++ 文档 关于 rename