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

名称

VOP_VPTOCNPvnode をそのコンポーネント名に変換する

書式

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

int
VOP_VPTOCNP( struct vnode *vp, struct vnode **dvp, char *buf, int *buflen);

解説

これは、vnode をそのコンポーネント名に変換して、 buf によって指定されたバッファの先頭への名前を書き込みます。
vp
変換する vnode。
dvp
vp の親ディレクトリの vnode。
buf
コンポーネント名の前に追加されるバッファ。
buflen
バッファの残っているサイズ。

VOP_VPTOCNP のデフォルトの実装は、マッチするファイル番号がある dirent を検索して、 vp の親ディレクトリに目を通します。 vp がディレクトリでなければ、 VOP_VPTOCNP は、ENOENT を返します。

ロック

vnode は、入口でロックされるべきであり、出口でもロックされます。親ディレクトリの vnode は、成功して終了するときにアンロックされます。しかしながら、それは、保持カウントを増加します。

戻り値

成功すれば、0 が返され、そうでなければ、エラーコードが、返されます。

エラー

[ ENOMEM]
バッファが、vnode のコンポーネント名を保持できるくらい大きくありませんでした。
[ ENOENT]
vnode が、ファイルシステム上で見つけられませんでした。

関連項目

VOP_LOOKUP(9), vnode(9)

このインタフェースは、開発途中です。

歴史

関数 VOP_VPTOCNP は、 FreeBSD 8.0 で登場しました。

作者

このマニュアルページは、 Joe Marcus Clarke によって書かれました。
November 19, 2011 FreeBSD