CATOPEN(3)

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);

DESCRIPTION
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 (consultez 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 (consultez 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.70 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
Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du projet perkamon <http://perkamon.alioth.debian.org/>.

Christophe Blaess <http://www.blaess.fr/christophe/> (1996-2003), Alain Portal <http://manpagesfr.free.fr/> (2003-2006). Florentin Duneau et l'équipe francophone de traduction de Debian (2006-2009).

Veuillez signaler toute erreur de traduction en écrivant à <perkamon-fr@traduc.org>.

Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « LC_ALL=C man <section> <page_de_man> ».