VOP_REMOVE(9) FreeBSD カーネル開発者マニュアル VOP_REMOVE(9)
名称
VOP_REMOVE, VOP_RMDIR − ファイルまたはディレクトリの削除 |
書式
#include <sys/param.h> int |
VOP_REMOVE(struct vnode *dvp, struct vnode *vp, struct componentname *cnp); int |
VOP_RMDIR(struct vnode *dvp, struct vnode *vp, struct componentname *cnp); |
解説 |
これらのエントリポイントは、それぞれファイルとディレクトリを削除します。 引数は以下の通りです。 |
dvp
ディレクトリの vnode。 vp cnp ロック |
dvp および vp 共に、入る時にロックされているべきで、戻り時もロックされ続 けています。 |
戻り値
成功時には 0 が返され、そうでない場合にはエラーコードが返されます。 |
疑似コード
int vop_remove(struct vnode *dvp, struct vnode *vp, struct componentname *cnp) { int error = 0; if (vp is immutable) { |
error = EPERM; |
||
goto out; |
} /* /* |
vrele(vp); |
else |
vput(vp); |
vput(dvp); return error; |
エラー
[EPERM]
ファイルは変更不可能です。 [ENOTEMPTY] 関連項目 |
作者
このマニュアルページは Doug Rabson が書きました。 FreeBSD 10.0 July 24, 1996 FreeBSD 10.0 |