catopen Subroutine
Propósito
Abre um catálogo de mensagens especificado.
Biblioteca
Biblioteca C Padrão (libc.a)
Sintaxe
#include <nl_types.h>
Descrição
O subroutine catopen abre um catálogo de mensagens especificado e retorna um descritor de catálogo usado para recuperar mensagens do catálogo. O conteúdo do descritor do catálogo está completo quando a subroutine catgets acessa o catálogo de mensagens. O tipo de dados nl_catd é usado para descritores de catálogos e é definido no arquivo nl_types.h
Se o nome do arquivo de catálogo referido pelo parâmetro CatalogName contiver um / (barra) à esquerda, ele será considerado um nome de caminho absoluto. Se o nome do arquivo de catálogo não for um nome de caminho absoluto, o ambiente do usuário determina quais caminhos de diretórios para pesquisar. A variável de ambiente NLSPATH define o caminho de pesquisa de diretórios. Quando esta variável é usada, a subroutina setlocale deve ser chamada antes do subroutine catopen .
Um descritor de catálogo de mensagens permanece válido em um processo até que esse processo ou uma chamada bem-sucedida para uma das funções do exec o feche.
Você pode usar duas variáveis especiais, %N e %L, na variável de ambiente NLSPATH . A variável %N é substituída pelo nome do catálogo referido pela chamada que abre o catálogo de mensagens. A variável %L é substituída pelo valor da categoria LC_MENSAGENS .
O valor da categoria LC_MENSAGENS pode ser configurado através de especificação de valores para a variável de ambiente LANG, LC_ALLou LC_MESSAGES . O valor da categoria LC_MESSAGES indica qual diretório específico do locale para pesquisar catálogos de mensagens. Por exemplo, se a subroutine catopen especifica um catálogo com o nomemycmd, e as variáveis de ambiente são definidas da seguinte forma:
NLSPATH=../%N:./%N:/system/nls/%L/%N:/system/nls/%N LANG=fr_FRentão o aplicativo procura o catálogo na seguinte ordem:
../mycmd
./mycmd
/system/nls/fr_FR/mycmd
/system/nls/mycmdSe você omitirá a variável %N em uma especificação de diretório dentro da variável de ambiente NLSPATH , o aplicativo assume que ele define um nome de catálogo e o abre como tal e não atravessará o restante do caminho de pesquisa.
Se a variável de ambiente NLSPATH não for definida, a subroutine catopen usa o caminho padrão. Veja o arquivo /etc/environment para o caminho padrão do NLSPATH . Se a categoria LC_MESSAGES for configurada para o valor padrão C, e a variável de ambiente LC__FASTMSG será definida comotrue, então chamadas subsequentes para o subroutine catgets geram ponteiros para o texto padrão fornecido pelo programa.
A subroutine catopen trata o primeiro arquivo que encontra como um arquivo de mensagens. Se você especificar um arquivo não de mensagem em um NLSPATH, por exemplo, /usr/bin/ls, catopen trata /usr/bin/ls como um catálogo de mensagens. Assim, nenhuma mensagem é encontrada e mensagens padrão são retornadas. Se você especificar /tmp em um NLSPATH, /tmp é aberto e procurado por mensagens e mensagens padrão são exibidas.
Parâmetros
| Item | Descrição |
|---|---|
| CatalogName | Especifica o arquivo de catálogo a ser aberto. |
| Parâmetro | Determina a variável de ambiente a ser usada na localização do catálogo de mensagens. Se o valor do parâmetro Parameter for 0, use a variável de ambiente LANG sem considerar a categoria LC_MESSAGES para localizar o catálogo. Se o valor do parâmetro Parameter for a macro NL_CAT_LOCALE , use a categoria LC_MESSAGES para localizar o catálogo. |
Valores De Retorno
A subroutine catopen retorna um descritor de catálogo. Se a categoria LC_MESSAGES for configurada para o valor padrão C, e a variável de ambiente LC__FASTMSG será definida comotruea sub-rotina catopen retorna um valor de -1.
Se a categoria LC_MESSAGES não estiver definida com o valor padrão C, mas a sub-rotina catopen retornar um valor de -1, ocorrerá um erro durante a criação da estrutura do tipo de dados nl_catd ou o nome do catálogo mencionado pelo parâmetro CatalogName não existirá.