vnop_rename エントリー・ポイント

目的

ファイルまたはディレクトリーの名前を変更します。

構文

int vnop_rename (srcvp, srcdvp, oldname, destvp, destdvp, newname, crp)
struct vnode * srcvp;
struct vnode * srcdvp;
char * oldname;
struct vnode * destvp;
struct vnode * destdvp;
char * newname;
struct ucred * crp;

パラメーター

項目 説明
サービス・グループ 名前変更するオブジェクトの仮想ノード (v ノード) を指します。
SRCDVP サービス・グループ パラメーターが置かれているディレクトリーの v ノードを指します。 古いオブジェクトと新しいオブジェクトの親ディレクトリーを同じにすることができます。
oldname オブジェクトの古い名前を識別します。
宛先 VP 新規オブジェクトの v ノードをポイントします。 このポインターは、新しいオブジェクトが存在する場合にのみ使用されます。 それ以外の場合、このパラメーターはヌル文字です。
宛先 VP 新規オブジェクトの親ディレクトリーを指します。 新しいオブジェクトと古いオブジェクトの親ディレクトリーを同じにすることができます。
newname オブジェクトの新しい名前を指します。
CRP クレッド 構造体を指します。 この構造には、アプリケーションがアクセス許可を検証するために使用できるデータが含まれています。

説明

VNOOP_RENAME エントリー・ポイントは、ファイルまたはディレクトリーを名前変更するために、論理ファイル・システムによって呼び出されます。 このエントリー・ポイントは、以下の名前変更アクションを提供します。

  • 古いオブジェクトを、別の親ディレクトリーに存在する新しいオブジェクトに名前変更します。
  • 古いオブジェクトを、別の親ディレクトリーに存在しない新しいオブジェクトに名前変更します。
  • 古いオブジェクトを、同じ親ディレクトリーに存在する新しいオブジェクトに名前変更します。
  • 古いオブジェクトを、同じ親ディレクトリーに存在しない新しいオブジェクトに名前変更します。

このエントリー・ポイント・ルーチンが正しく実行されるようにするために、 論理ファイル・システム は以下を保証します。

  • ファイル名はファイル・システム間で名前変更されません。
  • 古いオブジェクトと新しいオブジェクト (指定されている場合) が同じではありません。
  • 古い親ディレクトリーと新しい親ディレクトリーは、同じタイプの v ノードです。

実行環境

VNOOP_RENAME エントリー・ポイントは、 プロセス環境 からのみ呼び出すことができます。

戻り値

項目 説明
0 成功を示します。

ゼロ以外の戻り値は、障害を示すために /usr/include/sys/errno.h ファイルから戻されます。