EN JA
VOP_RENAME(9)
VOP_RENAME(9) FreeBSD Kernel Developer's Manual VOP_RENAME(9)

名称

VOP_RENAMEファイルの名前変更する

書式

#include < sys/param.h>
#include < sys/vnode.h>

int
VOP_RENAME( struct vnode *fdvp, struct vnode *fvp, struct componentname *fcnp, struct vnode *tdvp, struct vnode *tvp, struct componentname *tcnp);

解説

これは、ファイルの名前変更し、たぶん、親ディレクトリを変更します。目的のオブジェクトが存在するなら、最初に削除されます。

引数は、次の通りです:

fdvp
古い親ディレクトリの vnode。
fvp
名前が変更されるファイルの vnode。
fcnp
ファイルの現在の名前に関するパス名の情報。
tdvp
新しい親ディレクトリの vnode。
tvp
(存在するなら) ターゲット (目的) のファイルの vnode。
tcnp
ファイルの新しい名前に関するパス名の情報。

ロック

変更元のディレクトリとファイルは、ロックを解除されますが、 (呼び出しの) 入口で増加された、それらの参照カウントがあることが期待されます。 VOP ルーチンは、返る前に vrele(9) の両方を期待します。

宛先のディレクトリとファイルは、増加されたそれらの参照カウントがあるのと同様にロックされます。 VOP ルーチンは、返る前に vput(9) の両方を期待します。

エラー

[ EPERM]
ファイルが変更可能です。
[ EXDEV]
異なるファイルシステム間のファイルの名前の変更はできません。
[ EINVAL]
. または .. の名前変更を行うか、またはディレクトリのツリー構造を壊すような操作を実行しようとしました。
[ ENOTDIR]
ディレクトリからファイルに、またはその逆に名前を変更しようとしました。
[ ENOTEMPTY]
空ではないディレクトリを削除しようとしました。

関連項目

vnode(9)

作者

このマニュアルページは、 Doug Rabson によって書かれました。
July 24, 1996 FreeBSD