copyinstr 内核服务
用途
将字符串 (包括终止的空字符) 从用户复制到内核空间。
语法
#include <sys/types.h>
#include <sys/errno.h>
#include <sys/uio.h>
在 32 位内核上, 副本 Kernel Service 的语法为:
int copyinstr (from, to, max, actual)
caddr_t from;
caddr_t to;
uint max;
uint *actual;
在 64 位内核上, 副本 子例程的语法如下所示:
int copyinstr (from, to, max, actual)
void *from;
void *to;
size_t max;
size_t *actual;
参数
| 项 | 描述 |
|---|---|
| 从 | 指定要复制的字符字符串的地址。 |
| 至 | 指定要将该字符串复制到的地址。 |
| MAX | 指定要复制的字符的数目。 |
| 实际 | 指定通过引用传递的参数,该参数将由 副本 服务使用实际复制的字符数进行更新。 |
描述
副本 内核服务允许用户将字符数据从一个位置复制到另一个位置。 源位置必须位于用户空间中,或者如果调用者是内核进程,那么可以位于内核空间中。 目标位于内核空间中。
执行环境
仅可从 流程环境 调用 副本 内核服务。
返回值
| 项 | 描述 |
|---|---|
| 重大安全事件数量 | 指示操作成功。 |
| E2BIG | 指示空间不足,无法完成复制。 |
| EIO | 指示在引用数据时发生永久 I/O 错误。 |
| ENOSPC | 指示文件系统或调页空间不足。 |
| EFAULT | 指示用户没有足够的权限来访问数据,或者 瓦德尔 参数中指定的地址无效。 |