VOP_SETEXTATTR(9)

명칭
VOP_SETEXTATTR - vnode 에의 이름 다하고 확장 속성의 설정

서식
<sys/param.h> <sys/vnode.h> <sys/extattr.h> int VOP_SETEXTATTR(struct vnode *vp, int attrnamespace, char *name, struct uio *uio, struct ucred *cred, struct thread *td)

해설
이 vnode 호출은, 파일 또는 디렉토리에 대해, 특정의 이름 첨부 확장 속성을 설정하기 위해서 사용 가능합니다.

인수는 이하와 같습니다.

vp  파일 또는 디렉토리의 vnode.

attrnamespace
    어느 확장 속성의 이름 공간에, 그 속성의 이름이 존재하는지를 나타내는 정수 정수.

name
    속성의 이름이 들어간, 눌 캐릭터로 종단 된 캐릭터 라인에의 포인터.

uio 읽어들여 또는 기입하시는 데이터의 위치.

cred
    요구의 인증으로 사용하는 유저 증명.

td  확장 속성을 설정해 있는 thread.

uio 구조체는, VOP_WRITE 에서의 같은 이름의 인수와 같게 사용됩니다. 그렇지만, 확장 속성이 엄밀한 "name=value" 의 시멘틱스를 규정하고 있으므로, 0 이 아닌 오프셋(offset)는 각하 되겠지요.

uio 포인터는, NULL 인 것이 가능하고, 지정된 확장 속성이 삭제 되는 것이 당연한 것을 지시합니다.

cred 포인터는, NULL (을)를 건네줄 수가 있어 가능하다면 액세스 제어 체크가 실행되지 않는 것을 지시합니다. 이 cred 의 설정은, 액티브 프로세스에 용서되지 않은 확장 속성의 변경을, 커널이 정당화 하는 것을 인정하기 위해서(때문에) 사용 가능합니다.

확장 속성의 시멘틱스는, 호출을 실장하고 있는 파일 시스템에 의존해 다를 수 있습니다. 확장 속성에 대한 보다 많은 정보는 extattr(9) (을)를 참조해 주세요.

락
vnode 는, 들어갈 때에 락 되어 귀가시에도 락 계속 되고 있어야 합니다.

반환값
확장 속성이 성공리로 설정되었을 경우에는 0 이 돌려주어집니다. 그렇지 않은 경우에는 적절한 에러 코드가 돌려주어집니다.

에러

[EACCES]
    호출측이 적절한 특권을 가지고 있지 않습니다.

[ENXIO]
    지정된 vnode 및 속성명에 대한 요구는, 이 파일 시스템에서는 무효입니다.

[ENOMEM]
    요구를 실행하기 위한 충분한 메모리가 없습니다.

[EFAULT]
    uio 구조체가 무효인 유저 공간 주소를 참조하고 있습니다.

[EINVAL]
    이름 또는 uio 인수가 무효입니다.

[EOPNOTSUPP]
    파일 시스템이 VOP_GETEXTATTR() (을)를 서포트하고 있지 않습니다.

[ENOSPC]
    파일 시스템에 비어 area가 없습니다.

[EROFS]
    파일 시스템이 읽어내 전용입니다.

관련 항목
extattr(9), vnode(9), VOP_GETEXTATTR(9)

저자
이 메뉴얼 페이지는 Robert Watson 하지만 썼습니다.