Manpages - catopen.3

Table of Contents

NAME

catopen, catclose - open/close a message catalog

SYNOPSIS

  #include <nl_types.h>

  nl_catd catopen(const char *name, int flag);
  int catclose(nl_catd catalog);

DESCRIPTION

The function catopen*() opens a message catalog and returns a catalog descriptor. The descriptor remains valid until *catclose*() or *execve*(2). If a file descriptor is used to implement catalog descriptors, then the *FD_CLOEXEC flag will be set.

The argument name specifies the name of the message catalog to be opened. If name specifies an absolute path (i.e., contains a ’’), then /name specifies a pathname for the message catalog. Otherwise, the environment variable NLSPATH is used with name substituted for %N (see locale*(7)). It is unspecified whether *NLSPATH will be used when the process has root privileges. If NLSPATH does not exist in the environment, or if a message catalog cannot be opened in any of the paths specified by it, then an implementation defined path is used. This latter default path may depend on the LC_MESSAGES locale setting when the flag argument is NL_CAT_LOCALE and on the LANG environment variable when the flag argument is 0. Changing the LC_MESSAGES part of the locale may invalidate open catalog descriptors.

The flag argument to catopen*() is used to indicate the source for the language to use. If it is set to *NL_CAT_LOCALE, then it will use the current locale setting for LC_MESSAGES. Otherwise, it will use the LANG environment variable.

The function *catclose*() closes the message catalog identified by catalog. It invalidates any subsequent references to the message catalog defined by catalog.

RETURN VALUE

The function *catopen*() returns a message catalog descriptor of type nl_catd on success. On failure, it returns (nl_catd) -1 and sets errno to indicate the error. The possible error values include all possible values for the *open*(2) call.

The function *catclose*() returns 0 on success, or -1 on failure.

ENVIRONMENT

LC_MESSAGES
May be the source of the LC_MESSAGES locale setting, and thus determine the language to use if flag is set to NL_CAT_LOCALE.
LANG
The language to use if flag is 0.

ATTRIBUTES

For an explanation of the terms used in this section, see *attributes*(7).

Interface Attribute Value
*catopen*() Thread safety MT-Safe env
*catclose*() Thread safety MT-Safe

CONFORMING TO

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

NOTES

The above is the POSIX.1 description. The glibc value for NL_CAT_LOCALE is 1. The default path varies, but usually looks at a number of places below /usr/share/locale.

SEE ALSO

*catgets*(3), *setlocale*(3)

COLOPHON

This page is part of release 5.13 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at https://www.kernel.org/doc/man-pages/.

Author: dt

Created: 2022-02-20 Sun 14:30