ureadc 内核服务

用途

将字符写入到由 乌约 结构描述的缓冲区。

语法

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

参数

描述
c 指定要写入到缓冲区的字符。
乌约普 指向一个 乌约 结构,该结构描述要放置字符的缓冲区。

描述

乌阿特克 内核服务将一个字符写入到 乌约 结构描述的缓冲区。 设备驱动程序上半部分例程 (尤其是字符设备驱动程序) 经常使用 乌阿特克 内核服务来将数据传输到用户区域。

uio_residuio_iovcnt乌约 结构中用于描述数据区域的 字段必须大于 0。 如果 0 字段不大于 0 ,那么会返回一个错误。 uio_segflg乌约 结构中的 字段用于指示数据是写入到用户数据区还是写入内核数据区。 它还用于指示调用者是否需要跨内存操作以及是否已提供必需的跨内存描述符。 该标志的值在 /usr/include/sys/uio.h 文件中定义。

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

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

执行环境

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

返回值

描述
重大安全事件数量 指示成功完成。
ENOMEM 指示缓冲区中没有任何空间。
EFAULT 指示由于下列其中一个原因而导致用户位置无效:
  • uio_segflg字段指示用户空间和基地址 (iov_base(字段) 指向用户地址空间之外的位置。
  • 用户没有足够的权限来访问该位置。
  • 访问该位置时发生 I/O 错误。