Scroll to navigation

CATOPEN(3) Руководство программиста Linux CATOPEN(3)

ИМЯ

catopen, catclose - открывает/закрывает каталог сообщений

СИНТАКСИС

#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 для локали и, таким образом, определять используемый язык в случае, когда flag установлен в NL_CAT_LOCALE.
Язык, используемый в случае, когда flag равен 0.

АТРИБУТЫ

Описание терминов данного раздела смотрите в attributes(7).

Интерфейс Атрибут Значение
catopen() Безвредность в нитях MT-Safe env
catclose() Безвредность в нитях MT-Safe

СООТВЕТСТВИЕ СТАНДАРТАМ

POSIX.1-2001, POSIX.1-2008.

ЗАМЕЧАНИЯ

Описание выше соответствует POSIX.1. В glibc значение NL_CAT_LOCALE равно. Путь, используемый по умолчанию, варьируется, но, обычно, представляет собой различные подкаталоги /usr/share/locale.

СМ. ТАКЖЕ

catgets(3), setlocale(3)

ЗАМЕЧАНИЯ

Эта страница является частью проекта Linux man-pages версии 5.10. Описание проекта, информацию об ошибках и последнюю версию этой страницы можно найти по адресу https://www.kernel.org/doc/man-pages/.

ПЕРЕВОД

Русский перевод этой страницы руководства был сделан Azamat Hackimov <azamat.hackimov@gmail.com>, Dmitriy S. Seregin <dseregin@59.ru>, Dmitry Bolkhovskikh <d20052005@yandex.ru>, Katrin Kutepova <blackkatelv@gmail.com>, Yuri Kozlov <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>

Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3 или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на man-pages-ru-talks@lists.sourceforge.net.

8 августа 2015 г. GNU