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 成功時は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: 未定)
  • C11規格 (ISO/IEC 9899:2011):
  • 7.21.4.2 rename関数 (p: 302-303)
  • C99規格 (ISO/IEC 9899:1999):
  • 7.19.4.2 rename関数 (p: 268-269)
  • C89/C90標準 (ISO/IEC 9899:1990):
  • 4.9.4.2 rename関数

関連項目

ファイルを削除する
(関数)