CATOPEN(3) Manuel du programmeur Linux CATOPEN(3)
NOM
catopen, catclose - Ouverture/fermeture d'un catalogue de
messages.
SYNOPSIS
#include <features.h>
#include <nl_types.h>
nl_catd catopen (char *name, int flag);
void catclose (nl_catd catalog);
DESCRIPTION
catopen() ouvre un catalogue de message, et en retourne un
descripteur. 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 cata
logue. Sinon, la variable d'environnement NLSPATH est
utilisée, après avoir substitué name à son argument %N
(voir locale(7)). Si NLSPATH n'est pas définie dans
l'environnement, ou si le catalogue de messages ne peut
être ouvert dans aucun des chemins indiqués par NLSPATH,
alors les chemins d'accès suivants sont parcourus, dans
l'ordre :
/etc/locale/LC_MESSAGES
/usr/lib/locale/LC_MESSAGES
/usr/lib/locale/name/LC_MESSAGES
Dans chaque cas, LC_MESSAGES correspond à la valeur de
catégorie LC_MESSAGES renvoyée par un appel antérieur à
setlocale(), avec la valeur locale "C" par défaut. Dans
le dernier chemin de recherche, name est remplacé par le
nom du catalogue.
L'argument flag de catopen indique le type d'ouverture
souhaitée. Ce peut être soit MCLoadBySe, soit MCLoadAll.
La première valeur indique de ne charger en mémoire les
sections utiles du catalogue que lorsqu'elle sont néces
saires, alors que la seconde demande à catopen() de
charger le catalogue en entier.
catclose() Ferme le catalogue identifié par catalog. Ceci
invalide toute référence ultérieure au catalogue par le
descripteur catalog.
Le catalogue de messages doit être créé préalablement à
l'aide de la commande gencat(1).
VALEUR RENVOYÉE
catopen() renvoie un descripteur de catalogue de messages,
du type nl_catd s'il réussit. En cas d'échec il renvoie
-1.
Linux 22 Octobre 1996 1
CATOPEN(3) Manuel du programmeur Linux CATOPEN(3)
catclose() renvoie 0 s'il réussit, ou -1 en cas d'échec.
NOTES
Ces fonctions ne sont disponibles que sur la version
4.4.4.c de libc.so, et ultérieures. Dans le cas de Linux,
le descripteur de catalogue nl_catd est en réalite une
zone de mémoire de projection mmap() et non pas un
descripteur de fichier. Ainsi les catalogues peuvent être
partagés.
VOIR AUSSI
catgets(3), setlocale(3)
TRADUCTION
Christophe Blaess, 1997.
Linux 22 Octobre 1996 2