arrow 若葉プログラミング塾 > 知識の玉手箱 > C関数リファレンス >
rename()
rename()

この関数の目的

rename()は、ファイルの名前を変更する。

定義

	#include <stdio.h>
	int rename(const char *old, const char *new);

働き

この関数は、 old で指定される名前のファイルを、 new として与えられた名前として知られるようにする。 old は参照には使えなくなる。 new の名前のファイルがすでに存在していた場合、動作は処理系定義である。

成功すれば0を返す。失敗すれば0でない数を返すが、この場合ファイルの名前は変わらない。

解説

rename()が失敗する原因としては、改名するファイルが編集中であるとか、改名のためにファイルの内容をコピーする必要があるといったものがありうる。 こんなことはよくあることであるから、プログラムはrename()が失敗する可能性を考慮に入れて組んだほうが望ましい。

また、変更した名前と同じ名前のファイルが存在していた場合に何が起こるかは処理系に任されているから、このような事態が起こらないように注意するのも望ましい。 実際にその名前のファイルが存在しているかどうかを直接知る方法としては、標準ライブラリ関数では fopen() をその名前で実行してみる他ない。

説明するまでもないが、 rename とは英語で「名前をつけ直す」という意味の動詞である。 "name" が元々「名前をつける」という意味の動詞で(名詞としても使われるが)あり、"re" というのは「再び」という意味の接頭辞である。 DOS や Windows では rename というコマンドがある(短縮形の ren もある)。 ちなみに、 Unix では move を短縮した mv を名前をつけ直すのに使う。

arrow 若葉プログラミング塾 > 知識の玉手箱 > C関数リファレンス >
KC