uwritec 内核服务

用途

乌约 结构所描述的缓冲区中检索字符。

语法

#include <sys/types.h>
#include <sys/errno.h>
#include <sys/uio.h>
int uwritec ( uiop)
struct uio *uiop;

参数

描述
乌约普 指向 乌约 结构,该结构描述要从中读取字符的缓冲区。

描述

乌里泰克 内核服务从 乌约 结构描述的缓冲区中读取一个字符。 设备驱动程序上半部分例程 (尤其是字符设备驱动程序) 经常使用 乌里泰克 内核服务将数据传输到用户区域之外。 uio_residuio_iovcnt乌约 结构中的 字段必须大于 0 ,否则将会返回错误。

uio_segflg乌约 结构中的 字段指示数据是从用户数据区还是内核数据区中读取。 此字段还指示调用者是否需要跨内存操作以及是否已提供必需的跨内存描述符。 此标志的值在 /usr/include/sys/uio.h 文件中定义。

如果已成功读取数据,那么将更新 乌约 结构中的以下字段:

字段 描述
uio_iov 指定当前位置的地址iovec要使用的元素。
uio_xmem 指定当前位置的地址xmem要使用的元素 (用于跨内存复制)。
uio_iovcnt 指定剩余的数量iovec元素。
uio_iovdcnt 指定以下项的数目:iovec元素已处理。
uio_offset 指定将数据写入到的设备上的字符偏移量。
uio_resid 指定在 乌约 结构所描述的数据区中剩余的字符总数。
iov_base 指定当前描述的数据区中的下一个可用字符的地址iovec元素。
iov_len 指定当前所描述的缓冲区中的剩余数据的长度iovec元素。

执行环境

仅可从 流程环境 调用 乌里泰克 内核服务。

返回值

成功完成后, 乌里泰克 服务将返回其发送到检索的字符。

描述
-1 指示由于以下三种原因之一,缓冲区为空,或者用户位置无效:
  • uio_segflg字段指示用户空间和基地址 (iov_base(字段) 指向用户地址空间之外的位置。
  • 用户没有足够的权限来访问该位置。
  • 在访问该位置时发生 I/O 错误。