## Tcl8.6.17/Tk8.6.17 Documentation > Tcl Commands > library

### 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
    auto_execok, auto_import, auto_load, auto_mkindex, auto_qualify, auto_reset, tcl_findLibrary, parray, tcl_endOfWord, tcl_startOfNextWord, tcl_startOfPreviousWord, tcl_wordBreakAfter, tcl_wordBreakBefore — Tcl手続き函数の標準外部函数 standard library of Tcl procedures
  SYNOPSIS
  緒論 INTRODUCTION
  COMMAND PROCEDURES
    auto_execok cmd
    auto_import pattern
    auto_load cmd
    auto_mkindex dir pattern pattern ...
    auto_reset
    auto_qualify command namespace
    tcl_findLibrary basename version patch initScript enVarName varName
    parray arrayName ?pattern?
  WORD BOUNDARY HELPERS
    tcl_endOfWord str start
    tcl_startOfNextWord str start
    tcl_startOfPreviousWord str start
    tcl_wordBreakAfter str start
    tcl_wordBreakBefore str start
  変数 VARIABLES
  自動組込みと梱包管理の変数 AUTOLOADING AND PACKAGE MANAGEMENT VARIABLES
    auto_execs
    auto_index
    auto_noexec
    auto_noload
    auto_path
    env(TCL_LIBRARY)
    env(TCLLIBPATH)
  単語境界決定変数 WORD BOUNDARY DETERMINATION VARIABLES
    tcl_nonwordchars
    tcl_wordchars
  SEE ALSO
  KEYWORDS

### NAME

auto_execok, auto_import, auto_load, auto_mkindex, auto_qualify, auto_reset, tcl_findLibrary, parray, tcl_endOfWord, tcl_startOfNextWord, tcl_startOfPreviousWord, tcl_wordBreakAfter, tcl_wordBreakBefore — Tcl手続き函数の標準外部函数 standard library of Tcl procedures

### SYNOPSIS

auto_execok cmd
auto_import pattern
auto_load cmd
auto_mkindex dir pattern pattern ...
auto_qualify command namespace
auto_reset
tcl_findLibrary basename version patch initScript enVarName varName
parray arrayName ?pattern?
tcl_endOfWord str start
tcl_startOfNextWord str start
tcl_startOfPreviousWord str start
tcl_wordBreakAfter str start
tcl_wordBreakBefore str start

### 緒論 INTRODUCTION

Tcl は､通常に必要となる機能の為の Tcl 手続函数の外部関数群を含む｡Tcl 外部関数群の中で定義された手続函数は､一般的なもので､多くの異なる応用譜の使用に適している｡ Tcl 外部函数群の場所は info library 命令によって返って来る｡Tcl 外部関数群に加うるに､それぞれの応用譜は通常､運用する為の手続函数と同じように､自身の外部函数群を有する; この外部函数群の位置は通常､大域変数 $app_library の値によって与えられる､ここで app は応用譜の名前である｡譬えば､ Tk 外部函数群は､変数 tk_library の中に保存されている｡ 　　 Tcl includes a library of Tcl procedures for commonly-needed functions. The procedures defined in the Tcl library are generic ones suitable for use by many different applications. The location of the Tcl library is returned by the info library command. In addition to the Tcl library, each application will normally have its own library of support procedures as well; the location of this library is normally given by the value of the $app_library global variable, where app is the name of the application. For example, the location of the Tk library is kept in the variable tk_library.

Tcl 外部函数群の手続き関数を利用する為に､応用譜は､外部函数群のファイル init.tcl を source 命令で使用するのが好い､譬えば､Tcl 命令を使って 　　　 To access the procedures in the Tcl library, an application should source the file init.tcl in the library, for example with the Tcl command

    source [file join [info library] init.tcl]

もし､この外部函数群の手続函数 Tcl_Init が応用譜の Tcl_AppInit 手続函数から起動されると､これが､自動的に生じる｡この init.tcl の中の算譜が､ unknown 手続函数を定義し､要求があり次第下に定義された､自動-組込みを使って､組込まれるべき他の手続函数の為に準備する｡　　　 If the library procedure Tcl_Init is invoked from an application's Tcl_AppInit procedure, this happens automatically. The code in init.tcl will define the unknown procedure and arrange for the other procedures to be loaded on-demand using the auto-load mechanism defined below.

### COMMAND PROCEDURES

次の手続函数がTcl 外部函数群内で運用されている: 　　 The following procedures are provided in the Tcl library:

auto_execok cmd
  名前が cmd の､実行可能ファイル又は､組込み対話機能が実在するか否かを確定する｡もし､あるなら､名前が cmd の､実行可能ファイル又は､組込み対話機能を実行するために exec に手渡すべき引数のリストを返す｡無ければ､空リストを返す｡この命令は､ cmd の名前の実行可能ファイルの捜索として､現在の捜索経路(環境変数 PATH で与えられる)を調べる｡Windows のOSでは､この捜索は､ exec 命令に使用されているのと同じディレクトリーとファイル拡張子にまで拡張される｡ auto_execok 命令は､以前の捜索を配列名 auto_execs に記憶している; これにより､同じ cmd についての将来の呼出しでの経路の調査を回避できる｡auto_reset 命令は Auto_execok に捕捉した情報の忘却を強制する為に使用できる｡(訳註 file 命令に本命令の用例がある) Determines whether there is an executable file or shell builtin by the name cmd. If so, it returns a list of arguments to be passed to exec to execute the executable file or shell builtin named by cmd. If not, it returns an empty string. This command examines the directories in the current search path (given by the PATH environment variable) in its search for an executable file named cmd. On Windows platforms, the search is expanded with the same directories and file extensions as used by exec. Auto_execok remembers information about previous searches in an array named auto_execs; this avoids the path search in future calls for the same cmd. The command auto_reset may be used to force auto_execok to forget its cached information.

auto_import pattern
  この 命令 auto_import は namespace import の間に起動され､自動組込みされた外部函数群中にある pattern で指定される命令が移送されたか否かを確認する｡もし､あれば､その命令は､組込まれ､そこで､移転した連結を作成する為に､解釈実行機能を利用可能である｡もし､その命令が､自動組込みされた外部函数群中にないと､ auto_import はなにもしない｡この pattern の合致は､ namespace import の合致規則に従って遂行される｡ Auto_import is invoked during namespace import to see if the imported commands specified by pattern reside in an autoloaded library. If so, the commands are loaded so that they will be available to the interpreter for creating the import links. If the commands do not reside in an autoloaded library, auto_import does nothing. The pattern matching is performed according to the matching rules of namespace import.

auto_load cmd
  この命令は､ cmd と謂う名前の Tcl 命令に関してその定義の組込みを試みる｡その為に､一つ或はそれ以上のディレクトリーのリストからなる auto-load path を捜す｡その auto-load path は､大域変数 auto_path があればそれによって与えられる｡ない場合､環境変数 TCLLIBPATH が使われ､それも無いと､auto-load path は Tcl 外部函数群のディレクトリーで構成される｡ auto-load path のそれぞれのディレクトリーの内部には tclIndex ファイルがなければならず､それには､そのディレクトリー内に定義された一つ或はそれ以上の命令と､それぞれの命令を組込み評価する為の記述譜､とを記述している｡ tclIndex は auto_mkindex 命令で作られるものである｡もし cmd が索引ファイルに見つかると､その命令を生成する為の適切な記述譜が評価される｡auto_load 命令は､もし cmd が成功裡に作成されると1を返す｡この命令は､ cmd の為の索引の登録がないか､ cmd を定義する記述譜が実際には定義されない場合は(譬えば､索引の情報が期限切れ)､0を返す｡もし､記述譜の処理中に不都合が生じると､不都合が返る｡この auto_load 命令は､索引情報を唯一度だけ読み､それを配列 auto_index に保存する; この命令の更なる呼出しでは､索引ファイルの再読込みではなく､配列の中の cmd の項目を確認する｡迅速処理用の索引情報は auto_reset 命令で棄却できる｡この棄却は､次回の auto_load 命令に強制的にディスクから索引基本データを再読込みさせる｡ 　　　　 This command attempts to load the definition for a Tcl command named cmd. To do this, it searches an auto-load path, which is a list of one or more directories. The auto-load path is given by the global variable auto_path if it exists. If there is no auto_path variable, then the TCLLIBPATH environment variable is used, if it exists. Otherwise the auto-load path consists of just the Tcl library directory. Within each directory in the auto-load path there must be a file tclIndex that describes one or more commands defined in that directory and a script to evaluate to load each of the commands. The tclIndex file should be generated with the auto_mkindex command. If cmd is found in an index file, then the appropriate script is evaluated to create the command. The auto_load command returns 1 if cmd was successfully created. The command returns 0 if there was no index entry for cmd or if the script did not actually define cmd (e.g. because index information is out of date). If an error occurs while processing the script, then that error is returned. Auto_load only reads the index information once and saves it in the array auto_index; future calls to auto_load check for cmd in the array rather than re-reading the index files. The cached index information may be deleted with the command auto_reset. This will force the next auto_load command to reload the index database from disk.

auto_mkindex dir pattern pattern ...
  auto_load の使用に適した索引を生成する｡この命令は､何れかの pattern 引数に名前が合致する(合致は あの glob 命令によって行われる)､全てのファイルの為に dir を捜索し､全ての合致したファイル中に定義されている手続函数の全てのTcl 命令の索引を生成し､ dir 中のファイル名 tclIndex に索引情報を保存する｡もし､模様が与えられないと､模様として *.tcl を仮定する｡譬えば､この命令は､　 Generates an index suitable for use by auto_load. The command searches dir for all files whose names match any of the pattern arguments (matching is done with the glob command), generates an index of all the Tcl command procedures defined in all the matching files, and stores the index information in a file named tclIndex in dir. If no pattern is given a pattern of *.tcl will be assumed. For example, the command

      auto_mkindex foo *.tcl

  は､子供のディレクトリー foo 中の全ての .tcl ファイルを読み､新しい索引ファイル foo/tclIndex を生成する｡ 　　　　 will read all the .tcl files in subdirectory foo and generate a new index file foo/tclIndex.

  Auto_mkindex はTcl記述譜を源譜として子供の解釈実行機能に入れて調査し､そこで実行される手続函数と名前空間命令を監視する｡拡張Tclも使用可能で､自動組込みの索引に貢献し得る他の命令を登録する為に(説明書にはない) auto_mkindex_parser 梱包を使用可能である｡それが如何に動作するか auto.tcl を通し読みする必要がある｡ Auto_mkindex parses the Tcl scripts by sourcing them into a child interpreter and monitoring the proc and namespace commands that are executed. Extensions can use the (undocumented) auto_mkindex_parser package to register other commands that can contribute to the auto_load index. You will have to read through auto.tcl to see how this works.

  Auto_mkindex_old は(それは auto_mkindex と同じ構文を有する)､Tcl記述譜を余り洗練されていない方法で調査する: もし､ “proc” で始まる行が何処かにあると､それは手続函数の定義と看做し､その行の次の語は手続函数の名前と看做す｡この方法によらずに現れる手続函数の定義は(譬えば､ proc の前に空白を有する)､索引にされない｡もし､使用者の記述譜が “危険” を含む算譜であると､譬えば､大域初期化の算譜､或は､特別の文字 $ や * や [ や ] を含む手続函数名を使う場合､安全に使用するには auto_mkindex_old が好ましい｡ Auto_mkindex_old (which has the same syntax as auto_mkindex) parses the Tcl scripts in a relatively unsophisticated way: if any line contains the word “proc” as its first characters then it is assumed to be a procedure definition and the next word of the line is taken as the procedure's name. Procedure definitions that do not appear in this way (e.g. they have spaces before the proc) will not be indexed. If your script contains “dangerous” code, such as global initialization code or procedure names with special characters like $, *, [ or ], you are safer using auto_mkindex_old.

auto_reset
  auto_execok と auto_load によって捕捉された全ての情報を破棄する｡次回この情報が必要になった時にはディスクから再読込みされる｡auto_reset は､又､ auto-load の索引に列挙されたどの手続函数も削除するので､それを次回使用する時には､新鮮な複写が組込まれる｡ 　　　　 Destroys all the information cached by auto_execok and auto_load. This information will be re-read from disk the next time it is needed. Auto_reset also deletes any procedures listed in the auto-load index, so that fresh copies of them will be loaded the next time that they are used.

auto_qualify command namespace
  command に関して完全修飾した名前のリストを算出する｡このリストは､経路に､命令捜索の為に引続く､標準Tcl 解釈実行機能を反映する: 最初に､その命令を､現在の名前空間の中から捜し､次に､大域名前空間の中から捜す｡従って､もし command が相対的で名前空間が :: ではないと､返って来るリストは二つの要素を有す: 有効範囲が namespace の command であって､恰も､それが namespace の名前空間内の名前であるかの如くのもの; それと､ command であって､恰も､大域名前空間内の命令であるかの如くのもの｡ それ以外では､ command が絶対形式( :: で始まる)か､名前空間が :: のいずれかであると､そのリストは恰も大域名前空間内の命令の如く command のみを含む｡ 　　　　　　 Computes a list of fully qualified names for command. This list mirrors the path a standard Tcl interpreter follows for command lookups: first it looks for the command in the current namespace, and then in the global namespace. Accordingly, if command is relative and namespace is not ::, the list returned has two elements: command scoped by namespace, as if it were a command in the namespace namespace; and command as if it were a command in the global namespace. Otherwise, if either command is absolute (it begins with ::), or namespace is ::, the list contains only command as if it were a command in the global namespace.

  auto_qualify は､Tcl中の自動-組込み便益によって､ pkgIndex.tcl の様な自動-組込み索引の作成と､実行時の実際の函数自動-組込みの完遂との､両方に使用される｡ Auto_qualify is used by the auto-loading facilities in Tcl, both for producing auto-loading indexes such as pkgIndex.tcl, and for performing the actual auto-loading of functions at runtime.

tcl_findLibrary basename version patch initScript enVarName varName
  これは､拡張Tcl の始動活動の間に使用される標準捜索手続函数である｡拡張Tcl は､いくつもの標準ディレクトリー中の記述譜の外部函数群の捜索に､この手続函数を呼出す｡この外部函数群のディレクトリー名前の最後の構成要素は通常､ basenameversion (譬えば､tk8.0)である｡しかし､それは総機械語翻訳時の階層組織に依存しており､ “library” になっているかもしれない｡この initScript ファイルはそれが１度は基礎となっている解釈実行機能の中に､源譜として取入れられる｡このファイルが見出されるディレクトリーは大域変数 varName に保存されている｡もし､変数が既に定義されていると(譬えば､応用譜の始動活動の間のC算譜によって)､捜索は行われない｡そうでない場合､その捜索はこれらのディレクトリーを捜す: 環境変数 enVarName により名前付けされたディレクトリー ; Tcl 外部函数群のディレクトリーの相対的なディレクトリー ; 標準実装 ２進又は ２進/書庫 ディレクトリー中の実行ファイルの相対的位置 ; 平行して構築された樹枝状中の実行ファイルの相対位置｡ 　　　 This is a standard search procedure for use by extensions during their initialization. They call this procedure to look for their script library in several standard directories. The last component of the name of the library directory is normally basenameversion (e.g., tk8.0), but it might be “library” when in the build hierarchies. The initScript file will be sourced into the interpreter once it is found. The directory in which this file is found is stored into the global variable varName. If this variable is already defined (e.g., by C code during application initialization) then no searching is done. Otherwise the search looks in these directories: the directory named by the environment variable enVarName; relative to the Tcl library directory; relative to the executable file in the standard installation bin or bin/arch directory; relative to the executable file in the current build tree; relative to the executable file in a parallel build tree.

parray arrayName ?pattern?
  配列 arrayName 中の全ての要素の名前と値を標準出力に印刷する､もし pattern が与えられた場合は､ pattern に合致する( string match 命令の規則を適用する)名前とその値を印刷する｡arrayName は parray の呼び出し側に受入れ可能な配列でなければならない｡又､局所でも大域でも好い｡ 　　　 Prints on standard output the names and values of all the elements in the array arrayName, or just the names that match pattern (using the matching rules of string match) and their values if pattern is given. ArrayName must be an array accessible to the caller of parray. It may be either local or global.

#### WORD BOUNDARY HELPERS

これ等手続函数は主に内部で Tk で使われる｡ These procedures are mainly used internally by Tk.

tcl_endOfWord str start
  文字列 str 中の開始位置 start の後に生じる､最初の､語末の位置を返す｡語末の位置は､開始位置の後の､最初の語の文字に続く最初の非語文字であるとして定義される｡もし､開始位置の後に､もはや､語末がない場合は､-1を返す｡どの文字が語の文字かを､ Tcl が如何にして確定するかの更なる詳細は､tcl_wordchars の記述､及び､下の tcl_nonwordchars を参照されたい｡ 　　　 Returns the index of the first end-of-word location that occurs after a starting index start in the string str. An end-of-word location is defined to be the first non-word character following the first word character after the starting point. Returns -1 if there are no more end-of-word locations after the starting point. See the description of tcl_wordchars and tcl_nonwordchars below for more details on how Tcl determines which characters are word characters.

tcl_startOfNextWord str start
  文字列 str 中の開始位置 start の後に､最初に生じる語頭の位置を返す｡語頭の位置は､非語文字の後に続く､最初の語の文字であるとして定義される｡もし､開始位置の後に､もはや､語頭がない場合は､-1を返す｡ 　　 Returns the index of the first start-of-word location that occurs after a starting index start in the string str. A start-of-word location is defined to be the first word character following a non-word character. Returns -1 if there are no more start-of-word locations after the starting point.

tcl_startOfPreviousWord str start
  文字列 str 中の開始位置 start の前に､最初に生じる､語頭の位置を返す｡もし､開始位置の前に､もはや､語頭がない場合は､-1 を返す｡ 　　　 Returns the index of the first start-of-word location that occurs before a starting index start in the string str. Returns -1 if there are no more start-of-word locations before the starting point.

tcl_wordBreakAfter str start
  文字列 str 中の開始位置 start の後に､最初に生じる､語の境界の位置を返す｡もし､開始位置の後に､もはや､語の境界がない場合は､-1 を返す｡戻ってきた位置は､境界を構成する対の第２語の位置を参照する｡ 　　　 Returns the index of the first word boundary after the starting index start in the string str. Returns -1 if there are no more boundaries after the starting point in the given string. The index returned refers to the second character of the pair that comprises a boundary.

tcl_wordBreakBefore str start
  文字列 str 中の開始位置 start の前に､最初に生じる､語の境界の位置を返す｡もし､開始位置の前に､もはや､語の境界がない場合は､-1 を返す｡戻ってきた位置は､境界を構成する対の第２語の位置を参照する｡ 　　 Returns the index of the first word boundary before the starting index start in the string str. Returns -1 if there are no more boundaries before the starting point in the given string. The index returned refers to the second character of the pair that comprises a boundary.

### 変数 VARIABLES

次の大域変数がTcl 外部函数群の中で定義されたり使用されたりする｡それは次の二つの級に大別される､未知の命令と梱包の処理､及び､単語を定めるもの: 　　　 The following global variables are defined or used by the procedures in the Tcl library. They fall into two broad classes, handling unknown commands and packages, and determining what are words.

#### 自動組込みと梱包管理の変数 AUTOLOADING AND PACKAGE MANAGEMENT VARIABLES

auto_execs
  特定の命令が実行可能ファイルか否かに関する情報を登録する為に auto_execok によって使用される｡ 　　　 Used by auto_execok to record information about whether particular commands exist as executable files.

auto_index
  ディスクから読んだ索引情報を登録する為に auto_load によって使用される｡ 　　　 Used by auto_load to save the index information read from disk.

auto_noexec
  もし､何かの値が設定されると､ unknown は､どのような命令も自動実行を試みなくなる｡ 　　　 If set to any value, then unknown will not attempt to auto-exec any commands.

auto_noload
  もし､何かの値が設定されると､ unknown は､どのような命令の自動組込みも試みなくなる｡ 　　　 If set to any value, then unknown will not attempt to auto-load any commands.

auto_path
  もし設定される場合は､それは自動-組込み操作の間に捜索する為のディレクトリーを与える適正な Tcl リストを含まねばならない(省略時設定の package unknown 処理機能を使う時の索引ファイル梱包を含む)｡この変数は､開始時に順に次のものを含む様初期化される: TCLLIBPATH 環境変数内に列挙されたディレクトリー､ tcl_library 大域変数によって名付けられたディレクトリー､ tcl_library の親ディレクトリー､ tcl_pkgPath 変数内に列挙されたディレクトリー｡ファイルと梱包索引を捜す為の追加的位置は通常はこの変数に lappend を使って追加される｡ 　　　　 If set, then it must contain a valid Tcl list giving directories to search during auto-load operations (including for package index files when using the default package unknown handler). This variable is initialized during startup to contain, in order: the directories listed in the TCLLIBPATH environment variable, the directory named by the tcl_library global variable, the parent directory of tcl_library, the directories listed in the tcl_pkgPath variable. Additional locations to look for files and package indices should normally be added to this variable using lappend.

env(TCL_LIBRARY)
  もし設定されると､外部函数群の記述譜を含むディレクトリーの位置を指定する(この変数の値は､ tcl_library 変数に代入され､それ故､ info library によって返って来る)｡もし変数が設定されていないと､省略時の値が使用される｡ 　　　 If set, then it specifies the location of the directory containing library scripts (the value of this variable will be assigned to the tcl_library variable and therefore returned by the command info library). If this variable is not set then a default value is used.

env(TCLLIBPATH)
  もし設定されると､自動-組込み操作の間に捜索するためのディレクトリーを与える適正な Tcl リストでなくてはならない｡ディレクトリーは､どのOSによらず､経路の区切りとして “/” を使用し､Tcl 書式で規定されなければならない｡この変数は､ auto_path 変数の始動動作中にのみ使用される｡ 　　　 If set, then it must contain a valid Tcl list giving directories to search during auto-load operations. Directories must be specified in Tcl format, using “/” as the path separator, regardless of platform. This variable is only used when initializing the auto_path variable.

#### 単語境界決定変数 WORD BOUNDARY DETERMINATION VARIABLES

これ等の変数は tcl_endOfWord と tcl_startOfNextWord と tcl_startOfPreviousWord と tcl_wordBreakAfter と tcl_wordBreakBefore 命令の中でのみ使用される｡ 　　　 These variables are only used in the tcl_endOfWord, tcl_startOfNextWord, tcl_startOfPreviousWord, tcl_wordBreakAfter, and tcl_wordBreakBefore commands.

tcl_nonwordchars
  この変数は､正規表現を含み､通常は､文字が語の一部か否かの判定をする為の tcl_endOfWord の様な定例業務に使用される｡もし､模様が文字に合致すると､その文字は非語文字と看做される｡ Windows のOSの下では､空白､タブ記号､改行記号は非語文字と看做される｡Unixの下では数字､文字､下線以外は全て､非文字と看做される｡ 　　　 This variable contains a regular expression that is used by routines like tcl_endOfWord to identify whether a character is part of a word or not. If the pattern matches a character, the character is considered to be a non-word character. On Windows platforms, spaces, tabs, and newlines are considered non-word characters. Under Unix, everything but numbers, letters and underscores are considered non-word characters.

tcl_wordchars
  この変数は､正規表現を含み､通常は､文字が語の一部か否かの判定をする為の tcl_endOfWord の様な定例業務に使用される｡もし､模様が文字に合致すると､その文字は語の文字と看做される｡ Windows のOSの下では､語は､空白､タブ記号､改行記号以外のあらゆる文字で形成される｡Unixの下では語は数字､文字､下線で形成される｡ 　　　 This variable contains a regular expression that is used by routines like tcl_endOfWord to identify whether a character is part of a word or not. If the pattern matches a character, the character is considered to be a word character. On Windows platforms, words are comprised of any character that is not a space, tab, or newline. Under Unix, words are comprised of numbers, letters or underscores.

### SEE ALSO

env, info, re_syntax

### KEYWORDS

auto-exec, auto-load, library, unknown, word, whitespace
Copyright © 1991-1993 The Regents of the University of California.
Copyright © 1994-1996 Sun Microsystems, Inc.