COPY(9) FreeBSD カーネル開発者マニュアル COPY(9)
名称
copy, copyin, copyout, copystr, copyinstr − カーネルコピー関数 |
書式
#include <sys/types.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() copystr() copyinstr() 戻り値 |
それぞれの copy 関数は成功した時に 0 を、不正なアドレスに遭遇した時に EFAULT を返します。さらに、 copystr() および copyinstr() 関数は文字列が len バイトよりも長い時に ENAMETOOLONG を返します。 |
関連項目
FreeBSD 10.0 January 7, 1996 FreeBSD 10.0 |