uprintf 内核服务

用途

将打印消息的请求提交到进程的控制终端。

语法

#include <sys/uprintf.h>
int uprintf ( Format [,
Value, ...])
char *Format;

参数

描述
格式 指定包含以下两种类型的对象之一或两者的字符串:
  • 纯字符,它们将复制到消息输出流。
  • 转换规范,每个规范都会导致 0 参数列表中检索 0 个或多个项。 每个转换规范都由一个% (百分号) 后跟一个字符组成,该字符指示要应用的转换类型:
    %
    不进行转换。 打印%。
    德岛
    接受整数 并将其转换为带符号的十进制表示法。
    u
    接受整数 并将其转换为无符号十进制表示法。
    o
    接受整数 并将其转换为无符号八进制表示法。
    X
    接受整数 并将其转换为无符号十六进制表示法。
    接受 作为字符串 (字符指针) ,并打印该字符串中的字符,直到迂到 \ 0 (空字符) 为止。 必须为非空值,并且字符串的最大长度限制为 UP_MAXSTR 个字符。
    不支持字段宽度或精度转换规范。

    /usr/include/sys/uprintf.h 文件中定义了以下常量:

    • UP_MAXSTR
    • UP_MAXARGS
    • UP_MAXCAT
    • UP_MAXMSG

    格式 字符串可能包含从 0 到由 UP_MAXARGS 常量指定的转换规范数的值。 格式 字符串的最大长度是由 UP_MAXSTR 常量指定的字符数。 格式 必须为非空。

    构造的内核消息的最大长度限制为由 UP_MAXMSG 常量指定的字符数。 如果消息数大于 UP_MAXMSG 常量指定的字符数,那么将废弃这些消息。

VALUE 以数组的形式指定要转换的值。 参数列表中项的数量,类型和顺序应该与 格式 字符串中的转换规范相匹配。

描述

乌普林特夫 内核服务会提交内核消息请求。 在成功提交请求后, 乌普林特夫德 守护程序将根据请求的 格式 参数来构造消息。 然后, 乌普林特夫德 守护程序会将消息写入进程控制终端。

执行环境

乌普林特夫 内核服务只能从 流程 环境中进行调用。

返回值

描述
重大安全事件数量 指示操作成功。
ENOMEM 指示内存不可用,无法缓冲请求。
ENODEV 指示不存在用于该进程的控制终端。
ESRCH 指示 乌普林特夫德 守护程序未处于活动状态。 无法提交任何请求。
EINVAL 指示字符串 string pointer is null 或者字符串 参数大于 UP_MAXSTR 常量指定的字符数。
EINVAL 指示下列其中一项:
  • 格式 字符串指针为空。
  • 格式 字符串中的最大字符数大于 UP_MAXSTR 常量指定的数字。
  • 包含在 格式 字符串中的转换规范数大于 UP_MAXARGS 常量指定的数目。