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 a ouvrir. Si name indique un chemin d'acces absolu (contenant un `/') alors il est employe comme chemin d'acces au catalogue. Sinon, la variable d'environnement NLSPATH est utilisee, apres avoir substitue name a son argument %N (voir locale(7)). Si NLSPATH n'est pas definie dans l'environnement, ou si le catalogue de messages ne peut etre ouvert dans aucun des chemins indiques par NLSPATH, alors les chemins d'acces 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 a la valeur de categorie LC_MESSAGES renvoyee par un appel anterieur a setlocale(), avec la valeur locale "C" par defaut. Dans le dernier chemin de recherche, name est remplace par le nom du catalogue.

L'argument flag de catopen indique le type d'ouverture souhaitee. Ce peut etre soit MCLoadBySe, soit MCLoadAll. La premiere valeur indique de ne charger en memoire les sections utiles du catalogue que lorsqu'elle sont necessaires, alors que la seconde demande a catopen() de charger le catalogue en entier.

catclose() Ferme le catalogue identifie par catalog. Ceci invalide toute reference ulterieure au catalogue par le descripteur catalog.

Le catalogue de messages doit etre cree prealablement a l'aide de la commande gencat(1).

VALEUR RENVOYEE

catopen() renvoie un descripteur de catalogue de messages, du type nl_catd s'il reussit. En cas d'echec il renvoie -1.

catclose() renvoie 0 s'il reussit, ou -1 en cas d'echec.

NOTES
Ces fonction ne sont disponibles que sur la version 4.4.4.c de libc.so, et ulterieures. Dans le cas de Linux, le descripteur de catalogue nl_catd est en realite une zone de memoire de projection mmap() et non pas un descripteur de fichier. Ainsi les catalogues peuvent etre partages.

VOIR AUSSI
catgets(3), setlocale(3)