NAME
catopen, catclose - open/close a message catalog
SYNOPSIS
#include <nl_types.h>
I nl_catd catopen(const char * name , int flag );
I int catclose(nl_catd catalog );
DESCRIPTION
The function
R catopen ()
opens a message catalog and returns a catalog descriptor.
The descriptor remains valid until
R 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 and 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
R 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
R LC_MESSAGES .
Otherwise it will use the
LANG
environment variable.
The function
R catclose ()
closes the message catalog identified by
R catalog .
It invalidates any subsequent references to the message catalog
defined by
R catalog .
RETURN VALUE
The function
R 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
R 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
R NL_CAT_LOCALE .
LANG
The language to use if
flag
is 0.
CONFORMING TO
POSIX.1-2001.
It is unclear what the source was for the constants
MCLoadBySet
and
MCLoadAll
(see below).
NOTES
The above is the POSIX.1-2001 description.
The glibc value for
NL_CAT_LOCALE
is 1.
(Compare
MCLoadAll
below.)
The default path varies, but usually looks at a number of places below
R /usr/share/locale .
Linux Notes
These functions are available for Linux since libc 4.4.4c.
In the case of linux libc4 and libc5, the catalog descriptor
nl_catd
is a
mmap(2)'ed
area of memory and not a file descriptor.
The
flag
argument to
R catopen ()
should be either
MCLoadBySet
(=0) or
MCLoadAll
(=1).
The former value indicates that a set from the catalog is to be
loaded when needed, whereas the latter causes the initial call to
R catopen ()
to load the entire catalog into memory.
The default search path varies, but usually looks at a number of places below
/etc/locale
and
R /usr/lib/locale .
SEE ALSO