Other Alias
catopen
ОБЗОР
#include <nl_types.h>
nl_catd catopen(const char *name, int flag);
int catclose(nl_catd catalog);
ОПИСАНИЕ
Функция catopen() открывает каталог сообщений и возвращает дескриптор
каталога. Дескриптор остаётся действительным до вызова catclose() или
execve(2). Если для реализации дескрипторов каталогов используется
файловый дескриптор, то для него будет установлен флаг FD_CLOEXEC.
В аргументе name указывается имя каталога сообщений, который необходимо открыть. Если в name задаётся абсолютный путь (т.е., содержащий символ '/'), то name определяет путь к каталогу сообщений. Иначе используется переменная окружения NLSPATH, в которой символ %N заменяется значением name (смотрите locale(7)). Не определено, будет ли использоваться NLSPATH, если процесс имеет права root. Если NLSPATH отсутствует в окружении или если каталог сообщений не может быть открыт ни по одному из путей, указанных в этой переменной, то используется путь, зависящий от реализации. Он может зависеть от настройки локали LC_MESSAGES в случае, когда аргумент flag имеет значение NL_CAT_LOCALE или от переменной окружения LANG в случае, когда аргумент flag равен 0. Изменение части локали в LC_MESSAGES может привести к признанию дескрипторов открытых каталогов недействительными.
В аргументе flag функции catopen() задаётся источник используемого языка. Если его значение равно NL_CAT_LOCALE, то для LC_MESSAGES будет использована текущая локаль. В противном случае будет использована переменная окружения LANG.
Функция catclose() закрывает каталог сообщений, указанный в catalog. Все последующие обращения к каталогу сообщений, определяемому catalog, считаются ошибкой.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
При успешном выполнении функция catopen() возвращает дескриптор каталога
сообщений типа nl_catd. В случае ошибки она возвращает (nl_catd) -1 и
устанавливает в errno значение ошибки. Возможными кодами ошибок могут
быть все, что и у вызова open(2).
При успешном выполнении функция catclose() возвращает 0, а в случае ошибки значение -1.
ОКРУЖЕНИЕ
LC_MESSAGES Может быть источником LC_MESSAGES для локали и, таким образом, определять используемый язык в случае, когда flag установлен в NL_CAT_LOCALE.
LANG Язык, используемый в случае, когда flag равен 0.
АТРИБУТЫ
Описание терминов данного раздела смотрите в attributes(7).
Интерфейс Атрибут Значение
catopen()
безвредность в потоках: безвредно (MT-Safe env)
catclose()
безвредность в потоках: безвредно (MT-Safe)