NOM
catopen, catclose - Ouverture et fermeture d’un catalogue de messages
SYNOPSIS
#include <nl_types.h>
nl_catd catopen(const char *name, int flag);
int catclose(nl_catd catalog);
La fonction catopen() ouvre un catalogue de messages, 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, le drapeau FD_CLOEXEC sera défini.
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
(voyez 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 actuelle de
la localisation définie par 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 de message défini par
le descripteur catalog.
VALEUR RENVOYÉE
La fonction catopen() renvoie un descripteur de catalogue de messages
du type nl_catd si elle réussit. En cas d’échec, elle renvoie
(nl_catd)-1 et définit errno avec le code d’erreur. Les erreurs
possibles incluent toutes celles que peut renvoyer open(2).
La fonction catclose() renvoie 0 si elle réussit, ou -1 en cas d’échec.
ENVIRONNEMENT
LC_MESSAGES
Peut-être la source de la définition de la localisation
LC_MESSAGES et peut servir à déterminer le langage à utiliser,
si flag vaut NL_CAT_LOCALE.
LANG Le langage à utiliser, si flag vaut zéro.
CONFORMITÉ
POSIX.1-2001. L’origine des constantes MCLoadBySet et MCLoadAll est
incertaine (voyez ci-dessous).
NOTES
Tout ceci correspond à la description POSIX.1-2001. La valeur de
NL_CAT_LOCALE de la glibc est 1 (Comparez avec MCLoadAll plus bas). Le
chemin par défaut varie, mais il inclut en général plusieurs
emplacements sous /usr/share/locale.
Notes sur Linux
Ces fonctions sont disponibles sous Linux depuis la version 4.4.4.c de
la libc. Dans le cas des libc4 et libc5 Linux, le descripteur de
catalogue nl_catd est en réalité une zone de mémoire de projection
mmap(2) et non pas un descripteur de fichier. L’argument flag de
catopen() devrait être soit MCLoadBySet (= 0) soit MCLoadAll (= 1). La
première valeur indique qu’un ensemble du catalogue doit être chargé
quand le besoin s’en fait sentir, alors que la seconde réclame le
chargement en mémoire dès l’appel initial à catopen(). Le chemin par
défaut varie, mais il inclut en général plusieurs emplacements sous
/etc/locale et /usr/lib/locale.
VOIR AUSSI
catgets(3), setlocale(3)
COLOPHON
Cette page fait partie de la publication 3.23 du projet man-pages
Linux. Une description du projet et des instructions pour signaler des
anomalies peuvent être trouvées à l’adresse
http://www.kernel.org/doc/man-pages/.
TRADUCTION
Cette page de manuel a été traduite et mise à jour par Christophe
Blaess <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis par
Alain Portal <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et mise à
disposition sur http://manpagesfr.free.fr/.
Les mises à jour et corrections de la version présente dans Debian sont
directement gérées par Florentin Duneau <fduneau@gmail.com> et l’équipe
francophone de traduction de Debian.
Veuillez signaler toute erreur de traduction en écrivant à
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet manpages-fr.
Vous pouvez toujours avoir accès à la version anglaise de ce document
en utilisant la commande « man -L C <section> <page_de_man> ».