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 指示用户没有足够的权限来访问数据,或者 瓦德尔 参数中指定的地址无效。