Cライブラリ関数 -rename()
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);
}
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ファイル。
ファイルの名前変更に成功しましたその他の拡張