COPY(9)

명칭
copy, copyin, copyout, copystr, copyinstr - 커널 카피 함수

서식
<sys/types.h> <sys/systm.h> int copyin(const void *uaddr, void *kaddr, size_t len) int copyout(const void *kaddr, void *uaddr, size_t len) int copystr(const void *kfaddr, void *kdaddr, size_t len, size_t *done) int copyinstr(const void *uaddr, void *kaddr, size_t len, size_t *done)

해설
copy 함수군은 연속한 데이터를 있는 주소로부터 다른 주소에 카피하도록(듯이) 디자인되고 있습니다. copystr() 이외의 함수는, 유저 공간으로부터 커널 공간에, 혹은 반대 향해에 데이터를 카피합니다.

copy 함수군은 이하의 기능을 제공합니다.

copyin()
    유저 공간의 주소 uaddr (으)로부터 커널 공간의 주소 kaddr 우와 len 바이트의 데이터를 카피합니다.

copyout()
    커널 공간의 주소 kaddr (으)로부터 유저 공간의 주소 uaddr 우와 len 바이트의 데이터를 카피합니다.

copystr()
    커널 공간의 주소 kfaddr (으)로부터 커널 공간의 주소 kdaddr 에 눌 캐릭터로 종단 된 최대 len 캐릭터의 캐릭터 라인을 카피합니다. 말미의 눌 캐릭터를 포함한 실제로 카피된 캐릭터수가 *done 에 돌려주어집니다.

copyinstr()
    유저 공간의 주소 uaddr (으)로부터 커널 공간의 주소 kaddr 에 눌 캐릭터로 종단 된 최대 len 캐릭터의 캐릭터 라인을 카피합니다. 말미의 눌 캐릭터를 포함한 실제로 카피된 캐릭터수가 *done 에 돌려주어집니다.

반환값
각각의 copy 함수는 성공했을 때에 0 을, 부정한 주소에 조우했을 때에 EFAULT (을)를 돌려줍니다. 게다가 copystr() 및 copyinstr() 함수는 캐릭터 라인이 len 바이트보다 길 때에 ENAMETOOLONG (을)를 돌려줍니다.

관련 항목
fetch(9), store(9)