Cライブラリ関数 -rename()

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>

その他の拡張