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

### 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_AppendExportList, Tcl_CreateNamespace, Tcl_DeleteNamespace, Tcl_Export, Tcl_FindCommand, Tcl_FindNamespace, Tcl_ForgetImport, Tcl_GetCurrentNamespace, Tcl_GetGlobalNamespace, Tcl_GetNamespaceUnknownHandler, Tcl_Import, Tcl_SetNamespaceUnknownHandler — 名前空間を操作する　 manipulate namespaces
  SYNOPSIS
    #include <tcl.h>
    Tcl_Namespace *
    Tcl_CreateNamespace(interp, name, clientData, deleteProc)
    Tcl_DeleteNamespace(nsPtr)
    int
    Tcl_AppendExportList(interp, nsPtr, objPtr)
    int
    Tcl_Export(interp, nsPtr, pattern, resetListFirst)
    int
    Tcl_Import(interp, nsPtr, pattern, allowOverwrite)
    int
    Tcl_ForgetImport(interp, nsPtr, pattern)
    Tcl_Namespace *
    Tcl_GetCurrentNamespace(interp)
    Tcl_Namespace *
    Tcl_GetGlobalNamespace(interp)
    Tcl_Namespace *
    Tcl_FindNamespace(interp, name, contextNsPtr, flags)
    Tcl_Command
    Tcl_FindCommand(interp, name, contextNsPtr, flags)
    Tcl_Obj *
    Tcl_GetNamespaceUnknownHandler(interp, nsPtr)
    int
    Tcl_SetNamespaceUnknownHandler(interp, nsPtr, handlerPtr)
  引数 ARGUMENTS
    Tcl_Interp *interp (入出力in/out)
    const char *name (入力in)
    void *clientData (入力in)
    Tcl_NamespaceDeleteProc *deleteProc (入力in)
    Tcl_Namespace *nsPtr (入力in)
    Tcl_Obj *objPtr (出力out)
    const char *pattern (入力in)
    int resetListFirst (入力in)
    int allowOverwrite (入力in)
    Tcl_Namespace *contextNsPtr (入力in)
    int flags (入力in)
    Tcl_Obj *handlerPtr (入力in)
  説明 DESCRIPTION
  参照回数管理 REFERENCE COUNT MANAGEMENT
  SEE ALSO
  KEYWORDS

### NAME

Tcl_AppendExportList, Tcl_CreateNamespace, Tcl_DeleteNamespace, Tcl_Export, Tcl_FindCommand, Tcl_FindNamespace, Tcl_ForgetImport, Tcl_GetCurrentNamespace, Tcl_GetGlobalNamespace, Tcl_GetNamespaceUnknownHandler, Tcl_Import, Tcl_SetNamespaceUnknownHandler — 名前空間を操作する　 manipulate namespaces

### SYNOPSIS

#include <tcl.h>
Tcl_Namespace *
Tcl_CreateNamespace(interp, name, clientData, deleteProc)
Tcl_DeleteNamespace(nsPtr)
int
Tcl_AppendExportList(interp, nsPtr, objPtr)
int
Tcl_Export(interp, nsPtr, pattern, resetListFirst)
int
Tcl_Import(interp, nsPtr, pattern, allowOverwrite)
int
Tcl_ForgetImport(interp, nsPtr, pattern)
Tcl_Namespace *
Tcl_GetCurrentNamespace(interp)
Tcl_Namespace *
Tcl_GetGlobalNamespace(interp)
Tcl_Namespace *
Tcl_FindNamespace(interp, name, contextNsPtr, flags)
Tcl_Command
Tcl_FindCommand(interp, name, contextNsPtr, flags)
Tcl_Obj *
Tcl_GetNamespaceUnknownHandler(interp, nsPtr)
int
Tcl_SetNamespaceUnknownHandler(interp, nsPtr, handlerPtr)

### 引数 ARGUMENTS

Tcl_Interp *interp (入出力in/out)
  その中に名前空間が実在し､そこで名前の捜索が遂行される解釈実行機能｡又､そこは不都合の結果の伝言文が書かれる｡　　 The interpreter in which the namespace exists and where name lookups are performed. Also where error result messages are written.

const char *name (入力in)
  名前空間､或いは､生成されるか利用される命令の名前｡　 The name of the namespace or command to be created or accessed.

void *clientData (入力in)
  生成子又は名前空間による文脈指示子｡ Tcl により全く解釈されない｡　 A context pointer by the creator of the namespace. Not interpreted by Tcl at all.

Tcl_NamespaceDeleteProc *deleteProc (入力in)
  名前空間が削除されたときに呼出す関数への指示子､又はこのような呼戻しが為されない場合は NULL である｡　 A pointer to function to call when the namespace is deleted, or NULL if no such callback is to be performed.

Tcl_Namespace *nsPtr (入力in)
  操作されるべき名前空間､又は､( Tcl_DeleteNamespace 以外のために) 現在の名前空間を操作するための NULL ｡ The namespace to be manipulated, or NULL (for other than Tcl_DeleteNamespace) to manipulate the current namespace.

Tcl_Obj *objPtr (出力out)
  其処に函数出力が書かれる非共有値への参照｡　 A reference to an unshared value to which the function output will be written.

const char *pattern (入力in)
  移入されるか移出されるべき命令を記述する展開様式文様(Tcl_StringMatch 参照)｡　 The glob-style pattern (see Tcl_StringMatch) that describes the commands to be imported or exported.

int resetListFirst (入力in)
  移出文様のリストが現在の文様を其処に追加する前に解消されるべきか否か｡　 Whether the list of export patterns should be reset before adding the current pattern to it.

int allowOverwrite (入力in)
  この移入動作によって生成された命令が既存の命令を上書きできるか否か｡　 Whether new commands created by this import action can overwrite existing commands.

Tcl_Namespace *contextNsPtr (入力in)
  検索語が大局名前空間に定着していない時に名前空間又は命令のために捜索が行われるべき､名前空間の階層構造の場所｡NULL は現在の名前空間を示す｡　 The location in the namespace hierarchy where the search for a namespace or command should be conducted relative to when the search term is not rooted at the global namespace. NULL indicates the current namespace.

int flags (入力in)
  捜索が如何に遂行されるかを制御するビットの論理和組合わせ｡次の旗印が運営されている: TCL_GLOBAL_ONLY (捜索は常に大局名前空間の関連を行うことを示す)と TCL_NAMESPACE_ONLY (Tcl_FindCommand の為だけに; 捜索は常に名前空間文脈関連が行われることを示す)と TCL_LEAVE_ERR_MSG (捜索が失敗した場合､不都合伝言文は解釈実行機能にのこすべきことを示す｡) OR-ed combination of bits controlling how the search is to be performed. The following flags are supported: TCL_GLOBAL_ONLY (indicates that the search is always to be conducted relative to the global namespace), TCL_NAMESPACE_ONLY (just for Tcl_FindCommand; indicates that the search is always to be conducted relative to the context namespace), and TCL_LEAVE_ERR_MSG (indicates that an error message should be left in the interpreter if the search fails.)

Tcl_Obj *handlerPtr (入力in)
  名前空間の為の未知の命令初期機能として搭載されるべき記述断片､又は､処理機能を無為設定として設定解消する為には NULL ｡　 A script fragment to be installed as the unknown command handler for the namespace, or NULL to reset the handler to its default.

### 説明 DESCRIPTION

名前空間は階層構造の名前の文脈であり命令と変数を含む｡それはどの命令が移出され､他の名前空間により移送された命令が移入可能かを記述する紋様のリストを運営する｡名前空間は又 Tcl namespace 命令を通して操作可能である｡ Namespaces are hierarchic naming contexts that can contain commands and variables. They also maintain a list of patterns that describes what commands are exported, and can import commands that have been exported by other namespaces. Namespaces can also be manipulated through the Tcl command namespace.

Tcl_Namespace は名前空間を要約し､次の欄をその中に有することを保証する: name (名前空間の局部的名前､そこには名前空間区切りはなし､大域名前空間を示す空あり)fullName(名前空間の完全修飾名前)､ clientData, deleteProc ( Tcl_CreateNamespace 呼出し内で指定された値)､ parentPtr (名前空間を含む為のポインター､又は大域名前空間に関する NULL )｡ 　　　　 The Tcl_Namespace structure encapsulates a namespace, and is guaranteed to have the following fields in it: name (the local name of the namespace, with no namespace separator characters in it, with empty denoting the global namespace), fullName (the fully specified name of the namespace), clientData, deleteProc (the values specified in the call to Tcl_CreateNamespace), and parentPtr (a pointer to the containing namespace, or NULL for the global namespace.)

Tcl_CreateNamespace は新しい名前空間を作成する｡ deleteProc は次の型定義を有することになる: Tcl_CreateNamespace creates a new namespace. The deleteProc will have the following type signature:

    typedef void Tcl_NamespaceDeleteProc(
            void *clientData);

Tcl_DeleteNamespace は名前空間の為に定義された deleteProc を呼び(もしあれば)､名前空間を削除する｡ Tcl_DeleteNamespace deletes a namespace, calling the deleteProc defined for the namespace (if any).

Tcl_AppendExportList は与えられた名前空間に名前空間の為の移送された紋様を取出し､それを(リスト品目として) objPtr.に追記する｡ Tcl_AppendExportList retrieves the export patterns for a namespace given namespace and appends them (as list items) to objPtr.

Tcl_Export は名前空間の為に移送された紋様を設定し追記する｡紋様は resetListFirst 旗印が真値でない限り追記される｡ Tcl_Export sets and appends to the export patterns for a namespace. Patterns are appended unless the resetListFirst flag is true.

Tcl_Import は紋様に合致する命令を名前空間内に移入する｡註意すべきは､紋様は移入元の名前空間の名前を含まなければならない｡この函数は既存の作成された命令の上に命令が移入されことが試めされると allowOverwrite 旗印が設定されていない限り､TCL_ERRORを返す｡ Tcl_Import imports commands matching a pattern into a namespace. Note that the pattern must include the name of the namespace to import from. This function returns TCL_ERROR if an attempt to import a command over an existing command is made, unless the allowOverwrite flag has been set.

Tcl_ForgetImport は移入した合致様紋様を取外す｡ Tcl_ForgetImport removes imports matching a pattern.

Tcl_GetCurrentNamespace は解釈実行機能の為の現在の名前空間を返す｡ Tcl_GetCurrentNamespace returns the current namespace for an interpreter.

Tcl_GetGlobalNamespace は解釈実行機能の為の大域名前空間を返す｡ Tcl_GetGlobalNamespace returns the global namespace for an interpreter.

Tcl_FindNamespace は名前空間 contextNsPtr.の文脈内部で name の名前の名前空間を捜す｡命令が見付らない場合は NULL が返される｡ Tcl_FindNamespace searches for a namespace named name within the context of the namespace contextNsPtr. If the namespace cannot be found, NULL is returned.

Tcl_FindCommand は名前空間 contextNsPtrの文脈内部で name の名前の命令を捜す｡命令が見付らない場合は NULL が返される｡ Tcl_FindCommand searches for a command named name within the context of the namespace contextNsPtr. If the command cannot be found, NULL is returned.

Tcl_GetNamespaceUnknownHandler は名前空間の為の未知の命令処理子を返す｡何も設定しない場合は NULL を返す｡ Tcl_GetNamespaceUnknownHandler returns the unknown command handler for the namespace, or NULL if none is set.

Tcl_SetNamespaceUnknownHandler は名前空間の為の未知の命令処理子を設定する｡もし handlerPtr が NULL である場合処理子は無為設定に刷新される｡ Tcl_SetNamespaceUnknownHandler sets the unknown command handler for the namespace. If handlerPtr is NULL, then the handler is reset to its default.

### 参照回数管理 REFERENCE COUNT MANAGEMENT

Tcl_AppendExportListへのobjPtr引数は､非共有対象であるべき､この函数で修正されるから｡objPtrの参照回数は変更されない｡ The objPtr argument to Tcl_AppendExportList should be an unshared object, as it will be modified by this function. The reference count of objPtr will not be altered.

Tcl_GetNamespaceUnknownHandlerは､共有し得る値を返す｡ その参照回数は､値が保持されると増加される筈｡ Tcl_GetNamespaceUnknownHandler returns a possibly shared value. Its reference count should be incremented if the value is to be retained.

Tcl_SetNamespaceUnknownHandlerへのhandlerPtr引数は､それが非-空リストであれば､その参照回数を増加させる｡ The handlerPtr argument to Tcl_SetNamespaceUnknownHandler will have its reference count incremented if it is a non-empty list.

### SEE ALSO

Tcl_CreateCommand, Tcl_ListObjAppendList, Tcl_SetVar

### KEYWORDS

namespace, command
Copyright © 2003 Donal K. Fellows