总览 (SYNOPSIS)
#include <libintl.h> char * bindtextdomain (const char * domainname, const char * dirname);
描述 (DESCRIPTION)
bindtextdomain 函数 的 作用 是 设置 指定消息域 里,包含 消息条目 (message catalog) 的 基本目录 层次结构。
一个 消息域 是 一套 可翻译的 msgid 消息。 通常,每一个 软件包 有 它自己的 消息域。 提出 bindtextdomain 的 需求 是因为软件包 安装 的 时候,并不总和 <libintl.h> 头文件 和 libc/libintl 库文件 的前缀保持一致.
消息条目 期望的 路径名 是 dirname/locale/category/domainname.mo, 其中 locale 是 locale 名, 而 category 是 locale 面, 如 LC_MESSAGES.
domainname 必须 是 非空字符串。
如果 dirname 不是 NULL, 属于 domainname 域 的消息条目 的 基本目录 被设置为 dirname。 函数 能够 复制 参数字符串。如果 程序 希望 调用 chdir 函数, dirname 必须 是 绝对路径名;否则 程序 无法 保证 找到 消息条目。
如果 dirname 是 NULL, 函数 返回 以前 为 domainname 域 设置的 基本目录。
返回值 (RETURN VALUE)
如果成功, bindtextdomain 函数 返回 当前 domainname 域的 基本目录, 如果 改变了 基本目录, 返回 改变后的 基本目录。 返回的 字符串 一直 有效, 直到 下一次 对 同一个 domainname 调用 bindtextdomain; 这个 字符串 不应该 被修改 或 释放。如果 发生 内存分配错误, errno 设置为 ENOMEM, 然后 返回 NULL.
错误 (ERRORS)
下列 错误 可能 发生, 包括 其它的:
- ENOMEM
- 没有 足够的 内存 可用。