tail head cat sleep
QR code linking to this page

manページ  — VOP_SETEXTATTR

名称

VOP_SETEXTATTR – vnode への名前つき拡張属性の設定

内容

書式

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

int
VOP_SETEXTATTR(struct vnode *vp, int attrnamespace, const char *name, struct uio *uio, struct ucred *cred, struct thread *td);

解説

この vnode 呼び出しは、ファイルまたはディレクトリに対し、 特定の名前付き拡張属性を設定するために使用可能です。

引数は以下の通りです。
vp
  ファイルまたはディレクトリの vnode。
attrnamespace
  どの拡張属性の名前空間に、その属性の名前が存在するのかを示す整数定数。
name
  属性の名前が入った、ヌル文字で終端された文字列へのポインタ。
uio
  読み込みまたは書き込みされるデータの位置。
cred
  要求の認証で使用するユーザ証明。
td
  拡張属性を設定しているスレッド。

uio 構造体は、 VOP_WRITE(9) での同じ名前の引数と同様に使用されます。しかしながら、 拡張属性が厳密な "name=value" のセマンティクスを規定しているので、 0 でないオフセットは却下されるでしょう。

uio ポインタは、 NULL であることが可能であり、 指定された拡張属性が削除されるべきであることを指示します。

cred ポインタは、 NULL を渡すことができ、 可能であるならばアクセス制御チェックが実行されないことを指示します。 この cred の設定は、アクティブプロセスに許されていない拡張属性の変更を、 カーネルが正当化することを認めるために使用可能です。

拡張属性のセマンティクスは、 呼び出しを実装しているファイルシステムに依存して異なり得ます。 拡張属性についてのより多くの情報は extattr(9) を参照してください。

ロック

vnode は、入る時にロックされ、戻り時にもロックされ続けているべきです。

戻り値

拡張属性が成功裏に設定された場合には 0 が返されます。 そうでない場合には適切なエラーコードが返されます。

エラー

[EACCES]
  呼び出し側が適切な特権を持っていません。
[ENXIO]
  指定された vnode および属性名に対する要求は、このファイルシステムでは無効です。
[ENOMEM]
  要求を実行するための十分なメモリがありません。
[EFAULT]
  uio 構造体が無効なユーザ空間アドレスを参照しています。
[EINVAL]
  name, namespace, または uio 引数が無効です。
[EOPNOTSUPP]
  ファイルシステムが VOP_SETEXTATTR() をサポートしていません。
[ENOSPC]
  ファイルシステムに空き領域がありません。
[EROFS]
  ファイルシステムが読み取り専用です。

関連項目

extattr(9), vnode(9), VOP_GETEXTATTR(9), VOP_LISTEXTATTR(9) [英語]

作者

このマニュアルページは Robert Watson が書きました。

VOP_SETEXTATTR (9) December 23, 1999

tail head cat sleep
QR code linking to this page


このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.

Do you laugh when the waiter drops a tray full of dishes? Unix weenies do. They're the first ones to laugh at hapless users, trying to figure out an error message that doesn't have anything to do with what they just typed.
— The Unix Haters' handbook