复制内核服务
用途
在用户和内核内存之间复制数据。
语法
#include <sys/types.h>
#include <sys/errno.h>
int copyout (kaddr, uaddr, count)
char *kaddr;
char *uaddr;
int count;参数
| 项 | 描述 |
|---|---|
| 卡德尔 | 指定内核数据的地址。 |
| 瓦德尔 | 指定用户数据的地址。 |
| COUNT | 指定要复制的字节数。 |
描述
复制 服务将指定的字节数从内核内存复制到用户内存。 它的提供使系统调用和设备驱动程序上半例程可以安全地访问用户数据。 复制 服务确保用户具有适当的权限来访问数据。 此服务还提供从调页 I/O 错误恢复的功能,否则会导致系统崩溃。
仅当在用户进程中以内核方式执行时,才应该调用 复制 服务。
执行环境
仅可从 流程环境 调用 复制 内核服务。
返回值
| 项 | 描述 |
|---|---|
| 重大安全事件数量 | 指示操作成功。 |
| EFAULT | 指示用户没有足够的权限来访问数据,或者 瓦德尔 参数中指定的地址无效。 |
| EIO | 指示在引用数据时发生永久 I/O 错误。 |
| ENOMEM | 指示内存不足,无法执行必需的页面调度操作。 |
| ENOSPC | 指示文件系统或调页空间不足。 |