## Tcl9.0.3/Tk9.0.3 Documentation > Tcl C API > RegConfig

### Tcl/Tk Applications | Tcl Commands | Tk Commands | [incr Tcl] Package Commands | SQLite3 Package Commands | TDBC Package Commands | tdbc::mysql Package Commands | tdbc::odbc Package Commands | tdbc::postgres Package Commands | tdbc::sqlite3 Package Commands | Thread Package Commands | Tcl C API | Tk C API | [incr Tcl] Package C API | TDBC Package C API

  NAME
    Tcl_RegisterConfig — 埋込まれた構成設定情報を登録する手続函数 procedures to register embedded configuration information
  SYNOPSIS
    #include <tcl.h>
    Tcl_RegisterConfig(interp, pkgName, configuration, valEncoding)
  ARGUMENTS
  DESCRIPTION
    ::pkgName::pkgconfig list
    ::pkgName::pkgconfig get key
  TCL_CONFIG
  KEYWORDS

### NAME

Tcl_RegisterConfig — 埋込まれた構成設定情報を登録する手続函数 procedures to register embedded configuration information

### SYNOPSIS

#include <tcl.h>
Tcl_RegisterConfig(interp, pkgName, configuration, valEncoding)

### ARGUMENTS

Tcl_Interp *interp (入力in)
  埋込まれた構成設定情報が登録される為の解釈実行機能への参照｡ NULL であってはならない｡　 Refers to the interpreter the embedded configuration information is registered for. Must not be NULL.

const char *pkgName (入力in)
  ASCII 文字列として埋込まれた構成設定情報を登録する梱包の名前を含む｡これは情報が UTF-8 でもあることを意味する｡ NULL であってはならない｡　 Contains the name of the package registering the embedded configuration as ASCII string. This means that this information is in UTF-8 too. Must not be NULL.

const Tcl_Config *configuration (入力in)
  外部函数内に埋込まれた情報を含んでいる Tcl_Config 項目の配列を参照する｡NULL であってはならない｡配列の末尾は NULL に等価の鍵か空文字列への鍵のどちらかで合図される｡　 Refers to an array of Tcl_Config entries containing the information embedded in the library. Must not be NULL. The end of the array is signaled by either a key identical to NULL, or a key referring to the empty string.

const char *valEncoding (入力in)
  ASCII 文字列として構成設定値を保存する為に使われる符号化の名前を含んでいる｡これは情報が UTF-8 でもあることを意味する｡ NULL であってはならない｡　 Contains the name of the encoding used to store the configuration values as ASCII string. This means that this information is in UTF-8 too. Must not be NULL.

### DESCRIPTION

ここで説明する函数は TIP 59 内に基盤を有し､その構成設定情報の外部函数への埋込みと､この情報の待ち行列への Tcl-水準の相互作用の生成とを運営する拡張を提供する｡ The function described here has its base in TIP 59 and provides extensions with support for the embedding of configuration information into their library and the generation of a Tcl-level interface for querying this information.

再編成情報をその外部函数に埋込む為に､拡張機能は安定した Tcl_構成設定見出しの配列をその源譜ファイルの一つの中に定義し､更に其の情報を登録する為に Tcl_RegisterConfig を呼ばなくてはならない｡(訳註 if ->of) To embed configuration information into their library an extension has to define a non-volatile array of Tcl_Config entries in one if its source files and then call Tcl_RegisterConfig to register that information.

Tcl_RegisterConfig は４つの引数を採る､第一､我々が情報を登録する解釈実行機能への参照､第二､その構成設定情報を登録する梱包の名前､第三､配列構造へのポインター､第四､構成設定値に使われる符号系の文字列宣言｡ Tcl_RegisterConfig takes four arguments; first, a reference to the interpreter we are registering the information with, second, the name of the package registering its configuration information, third, a pointer to an array of structures, and fourth a string declaring the encoding used by the configuration values.

文字列 valEncoding は Tcl では既知の符号系の名前を含む｡全てのこれ等の名前は通常 UTF-8 の部分を構成する ASCII 内の文字に使われる､そこで UTF-8 符号系が暗示される｡鍵は読み易い英語文書であることが要望され､そこで UTF-8 の部分を構成する ASCII が使われる｡謂替えると､ UTF-8 であることが要望される｡鍵に結合された値はどのような文字列でもよい｡このため valEncoding の内容は文字列の文字を表現する為に使われる符号系を定義している｡ The string valEncoding contains the name of an encoding known to Tcl. All these names are use only characters in the ASCII subset of UTF-8 and are thus implicitly in the UTF-8 encoding. It is expected that keys are legible English text and therefore using the ASCII subset of UTF-8. In other words, they are expected to be in UTF-8 too. The values associated with the keys can be any string however. For these the contents of valEncoding define which encoding was used to represent the characters of the strings.

それぞれの configuration 配列の要素は､鍵とその鍵に結合した値の二つの文字列を参照する｡配列の末尾は空の鍵か NULL と同一の鍵かによって知らせる｡函数は configuration 配列を複写する事はない｡これは､呼出側がこの配列を保有する記憶域は解放される事は無い事を意味する｡これが先に安定したとの語を使用した背景である｡これを成遂げる最も容易な方法は Tcl_構成設定見出しの大域静的配列を定義する事である｡譬えば Tcl 核の源譜内の “generic/tclPkgConfig.c” ファイルを参照されたい｡ Each element of the configuration array refers to two strings containing the key and the value associated with that key. The end of the array is signaled by either an empty key or a key identical to NULL. The function makes no copy of the configuration array. This means that the caller has to make sure that the memory holding this array is never released. This is the meaning behind the word non-volatile used earlier. The easiest way to accomplish this is to define a global static array of Tcl_Config entries. See the file “generic/tclPkgConfig.c” in the sources of the Tcl core for an example.

呼ばれた時に Tcl_RegisterConfig は以下を行う When called Tcl_RegisterConfig will

1. 提供された pkgName を有する名前空間が実在しない場合は生成する｡ create a namespace having the provided pkgName, if not yet existing.

2. 名前空間内に命令 pkgconfig を作成し､それを提供された情報に連結するので､構成設定からの鍵とその結合した値が pkgconfig 呼出で取戻せる｡ create the command pkgconfig in that namespace and link it to the provided information so that the keys from configuration and their associated values can be retrieved through calls to pkgconfig.

pkgconfig 命令は二つの副命令 list と get を提供する: The command pkgconfig will provide two subcommands, list and get:

::pkgName::pkgconfig list
  全ての定義された鍵の名前を含むリストを返す｡ Returns a list containing the names of all defined keys.

::pkgName::pkgconfig get key
  指定された key に結合した構成設定値を返す｡ Returns the configuration value associated with the specified key.

### TCL_CONFIG

Tcl_Config構造は次の欄を含む: The Tcl_Config structure contains the following fields:

    typedef struct {
        const char *key;
        const char *value;
    } Tcl_Config;

### KEYWORDS

embedding, configuration, library
Copyright © 2002 Andreas Kupries <andreas_kupries(at)users.sourceforge.net>