NLuprintf 内核服务

用途

将打印国际化消息的请求提交至进程控制终端。

语法

#include <sys/uprintf.h>
int NLuprintf (Uprintf)
struct uprintf *Uprintf;

参数

描述
乌普林特夫 指向 " 乌普林特夫 " 请求结构。

描述

努林特夫 内核服务使用由 乌普林特夫 参数指定的 乌普林特夫 请求结构作为输入来提交国际化内核消息请求。 一旦成功提交了请求, 乌普林特夫德 守护程序就会检索,转换,格式化 乌普林特夫 请求结构所描述的消息并将其写入进程控制终端。

在调用 努林特夫 内核服务之前,调用者必须初始化 乌普林特夫 请求结构。 乌普林特夫 请求结构中的字段使用多个常量。 在 /usr/include/sys/uprintf.h 文件中定义了以下常量:

  • UP_MAXSTR
  • UP_MAXARGS
  • UP_MAXCAT
  • UP_MAXMSG

乌普林特夫 请求结构由下列字段组成:

字段 描述
Uprintf->upf_defmsg 指向缺省的消息格式。 缺省消息格式是一个字符串,它包含以下两种类型的对象中的一种或两种:
  • 纯字符,它们将复制到消息输出流
  • 转换规范,每个规范都导致从 乌普林特夫-> arg 值参数数组中访存零个或多个项

每个转换规范都由一个% (百分号) 后跟一个字符组成,该字符指示要应用的转换类型:

%
不进行转换。 打印% 字符。
D, 一 
接受整数值并将它转换为有符号的十进制符号表示法。
u
接受整数值并将它转换为无符号的十进制符号表示法。
o
接受整数值并将其转换为无符号八进制表示法。
X
接受整数值并将其转换为无符号十六进制表示法。
c
接受并打印 字符 值。
接受作为字符串 (字符指针) 的值。 将打印字符串中的字符,直到迂到 \0 (空字符) 为止。

不支持字段宽度或精度转换指定项。

缺省消息格式字符串的最大长度,该字符串由以下项指向:Uprintf->upf_defmsg字段是由 UP_MAXSTR 常量指定的字符数。 该Uprintf->upf_defmsg字段必须为非空字符。

在构造内核消息时使用缺省消息格式 (如果消息格式是由Uprintf->upf_NLsetnoUprint->upf_NLmsgno无法从指定的消息目录检索字段Uprintf->upf_NLcatname. 包含在缺省消息格式中的转换规范应该与包含在由缺省消息格式指定的消息格式中的转换规范相匹配。upf_NLsetnoupf_NLmsgno字段。

Uprintf->upf_arg[UP_MAXARGS] 指定从零到由 UP_MAXARGS 常量指定的值参数的数目。 参数可以是一个整数值,一个字符值或一个字符串值 (字符指针)。 字符串的长度限制为由 UP_MAXSTR 常量指定的字符数。 字符串值参数必须是非空字符。 参数数组中项的数量,类型和顺序应与消息格式字符串中的转换规范相匹配。
Uprintf->upf_NLcatname 指向消息目录文件的名称。 如果目录文件名由以下项引用:Uprintf->upf_NLcatname字段以/(斜杠) 开头,它被假定为绝对路径名。 如果目录文件名不是绝对路径名,那么进程环境将决定要搜索的目录路径。 目录文件名称的最大长度限制为 UP_MAXCAT 常量指定的字符数。 以下项的值:Uprintf->upf_NLcatname字段必须为非空字符。
Uprintf->upf_NLsetno 指定集合标识。
Uprintf->upf_NLmsgno 指定消息标识。 该Uprintf->upf_NLsetnoUprintf->upf_NLmsgno字段指定要从指定的消息目录中检索的特定消息格式字符串。Uprintf->upf_NLcatname:NONE.

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

执行环境

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

返回值

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