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)作者
このマニュアルページは、 によって書かれました。July 24, 1996 | FreeBSD |