La fonction
catopen()
ouvre un catalogue de message, et en retourne un descripteur.
Celui-ci reste valide jusqu'à un appel
catclose()
ou
execve(2).
Si un descripteur de fichier est utilisé pour implémenter le descripteur
de catalogue, il disposera de l'attribut
FD_CLOEXEC.
L'argument
name
indique le nom du catalogue à ouvrir.
Si
name
indique un chemin d'accès absolu (contenant un « / » )
alors il est employé comme chemin d'accès au catalogue.
Sinon, la variable d'environnement
NLSPATH
est utilisée, après avoir substitué
name
à son argument
%N
(voir
locale(7)).
Lorsque le processus à des privilèges root, l'emploi éventuel de
NLSPATH
n'est pas garanti.
Si
NLSPATH
n'est pas définie dans l'environnement, ou si le catalogue de messages ne
peut être ouvert dans aucun des chemins qu'elle contient, alors un chemin
prédéfini, dépendant de l'implémentation, est utilisé.
Ce dernier peut dépendre de la catégorie de localisation
LC_MESSAGES
si l'argument
flag
vaut
NL_CAT_LOCALE
ou de la variable d'environnement
LANG
si l'argument
flag
vaut zéro.
Changer la partie
LC_MESSAGES
de la localisation,
peut rendre invalides les descripteurs de catalogues déjà ouverts.
L'argument
flag
de
catopen()
indique l'origine du langage à utiliser.
S'il vaut
NL_CAT_LOCALE
alors il utilisera la configuration de la localisation pour
LC_MESSAGES.
Sinon, il utilisera la variable d'environnement
LANG.
La fonction
catclose()
Ferme le catalogue identifié par
catalog.
Ceci invalide toute référence ultérieure au catalogue par le descripteur
catalog.