catopen, catclose - open/close a message catalog


       #include <features.h>
       #include <nl_types.h>

       nl_catd catopen(name, flag)
       char *name;
       int flag;

       void catclose(catalog)
       nl_catd catalog;


       catopen()  opens  a  message catalog and returns a catalog
       descriptor.  name specifies the name of the message  cata­
       log  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)).  If NLSPATH does not exist in the environment,
       or if a message catalog cannot be opened  in  any  of  the
       paths  specified  by NLSPATH, then the following paths are
       searched in order


       In all cases LC_MESSAGES stands for the current setting of
       the LC_MESSAGES category of locale from a previous call to
       setlocale() and defaults to the "C" locale.  In  the  last
       search path name refers to the catalog name.

       The  flag argument to catopen is used to indicate the type
       of loading desired. This should be either  MCLoadBySet  or
       MCLoadAll.   The  former  value  indicates  that  only the
       required set from the catalog is loaded into  memory  when
       needed,  whereas  the  latter  causes  the initial call to
       catopen() to load the entire catalog into memory.

       catclose() closes the message catalog identified by  cata­
       log.  It invalidates any subsequent references to the mes­
       sage catalog defined by catalog.


       catopen() returns a message  catalog  descriptor  of  type
       nl_catd on success.  On failure, it returns -1.

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

       These  functions  are only available in and
       above. In  the  case  of  linux,  the  catalog  descriptor
       nl_catd  is  actually a mmap()'ed area of memory and not a
       file descriptor, thus allowing catalogs to be shared.


       catgets(3), setlocale(3)