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 | 指向缺省的消息格式。 缺省消息格式是一个字符串,它包含以下两种类型的对象中的一种或两种:
每个转换规范都由一个% (百分号) 后跟一个字符组成,该字符指示要应用的转换类型:
不支持字段宽度或精度转换指定项。 缺省消息格式字符串的最大长度,该字符串由以下项指向:Uprintf->upf_defmsg字段是由 UP_MAXSTR 常量指定的字符数。 该Uprintf->upf_defmsg字段必须为非空字符。 在构造内核消息时使用缺省消息格式 (如果消息格式是由Uprintf->upf_NLsetno和Uprint->upf_NLmsgno无法从指定的消息目录检索字段Uprintf->upf_NLcatname. 包含在缺省消息格式中的转换规范应该与包含在由缺省消息格式指定的消息格式中的转换规范相匹配。upf_NLsetno和upf_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_NLsetno和Uprintf->upf_NLmsgno字段指定要从指定的消息目录中检索的特定消息格式字符串。Uprintf->upf_NLcatname:NONE. 构造的内核消息的最大长度限制为由 UP_MAXMSG 常量指定的字符数。 如果消息数大于 UP_MAXMSG 常量指定的字符数,那么将废弃这些消息。 |
执行环境
努林特夫 内核服务只能从 流程 环境中进行调用。
返回值
| 项 | 描述 |
|---|---|
| 重大安全事件数量 | 指示操作成功。 |
| ENOMEM | 指示内存不可用,无法缓冲请求。 |
| ENODEV | 指示不存在用于该进程的控制终端。 |
| ESRCH | 指示 乌普林特夫德 守护程序未处于活动状态。 无法提交任何请求。 |
| EINVAL | 指示消息目录文件名指针为空,或目录文件名大于 UP_MAXCAT 常量指定的字符数。 |
| EINVAL | 指示字符串值参数指针为 NULL ,或者字符串值参数大于 UP_MAXCAT 常量指定的字符数。 |
| EINVAL | 指示下列其中一项:
|