catopen(3)

catopen3

Open message catalog

Usage

#include <nl_types.h>

nl_catd

catopen(const char *name, int oflag);

Library

Standard C Library (libc, -lc)

Overview

The catopen() function opens the message catalog specified by name and returns a message catalog descriptor. If name contains a ‘/’ then name specifies the full pathname for the message catalog, otherwise the value of the environment variable NLSPATH is used with the following substitutions:

%N

The value of the name argument.

%L

The value of the LANG environment variable or the LC_MESSAGES category (see below).

%l

The language element from the LANG environment variable or from the LC_MESSAGES category.

%t

The territory element from the LANG environment variable or from the LC_MESSAGES category.

%c

The codeset element from the LANG environment variable or from the LC_MESSAGES category.

%%

A single % character.

An empty string is substituted for undefined values.

Path names templates defined in NLSPATH are separated by colons ( ‘:’). A leading or two adjacent colons is equivalent to specifying %N.

If the oflag argument is set to the NL_CAT_LOCALE constant, LC_MESSAGES locale category used to open the message catalog; using NL_CAT_LOCALE conforms to the X/Open Portability Guide Issue 4 (“XPG4”) standard. You can specify 0 for compatibility with X/Open Portability Guide Issue 3 (“XPG3”); when oflag is set to 0, the LANG environment variable determines the message catalog locale.

A message catalog descriptor remains valid in a process until that process closes it, or until a successful call to one of the exec(3) function.

Return values

Upon successful completion, catopen() returns a message catalog descriptor. Otherwise, (nl_catd) -1 is returned and errno is set to indicate the error.

Errors

[EINVAL]

Argument name does not point to a valid message catalog, or catalog is corrupt.

[ENAMETOOLONG]

An entire path to the message catalog exceeded 1024 characters.

[ENOENT]

The named message catalog does not exists, or the name argument points to an empty string.

[ENOMEM]

Insufficient memory is available.

Releases

153 releases since Mac OS X 10.0; the text changed 2 times.

  1. 10.0–10.1.5
  2. 10.3–10.6.8
  3. 10.7–26.5

Standards

The catopen() function conforms to IEEE Std 1003.1-2001 (“POSIX.1”).

From Libc 1752.120.2 in macOS 26.5. Parsed by carta from the page's mdoc source.