uwritec 内核服务
用途
从 乌约 结构所描述的缓冲区中检索字符。
语法
#include <sys/types.h>
#include <sys/errno.h>
#include <sys/uio.h> int uwritec ( uiop)
struct uio *uiop;
struct uio *uiop;
参数
| 项 | 描述 |
|---|---|
| 乌约普 | 指向 乌约 结构,该结构描述要从中读取字符的缓冲区。 |
描述
乌里泰克 内核服务从 乌约 结构描述的缓冲区中读取一个字符。 设备驱动程序上半部分例程 (尤其是字符设备驱动程序) 经常使用 乌里泰克 内核服务将数据传输到用户区域之外。 uio_resid 和 uio_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 | 指示由于以下三种原因之一,缓冲区为空,或者用户位置无效:
|