library.n
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:14k
源码类别:

通讯编程

开发平台:

Visual C++

  1. '"
  2. '" Copyright (c) 1991-1993 The Regents of the University of California.
  3. '" Copyright (c) 1994-1996 Sun Microsystems, Inc.
  4. '"
  5. '" See the file "license.terms" for information on usage and redistribution
  6. '" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
  7. '" 
  8. '" RCS: @(#) $Id: library.n,v 1.16 2001/08/24 06:03:15 dgp Exp $
  9. .so man.macros
  10. .TH library n "8.0" Tcl "Tcl Built-In Commands"
  11. .BS
  12. .SH NAME
  13. auto_execok, auto_import, auto_load, auto_mkindex, auto_mkindex_old, auto_qualify, auto_reset, tcl_findLibrary, parray, tcl_endOfWord, tcl_startOfNextWord, tcl_startOfPreviousWord, tcl_wordBreakAfter, tcl_wordBreakBefore - standard library of Tcl procedures
  14. .SH SYNOPSIS
  15. .nf
  16. fBauto_execok fIcmdfR
  17. fBauto_import fIpatternfR
  18. fBauto_load fIcmdfR
  19. fBauto_mkindex fIdir pattern pattern ...fR
  20. fBauto_mkindex_old fIdir pattern pattern ...fR
  21. fBauto_qualify fIcommand namespacefR
  22. fBauto_resetfR
  23. fBtcl_findLibrary fIbasename version patch initScript enVarName varNamefR
  24. fBparray fIarrayNamefR
  25. .VS
  26. fBtcl_endOfWord fIstr startfR
  27. fBtcl_startOfNextWord fIstr startfR
  28. fBtcl_startOfPreviousWord fIstr startfR
  29. fBtcl_wordBreakAfter fIstr startfR
  30. fBtcl_wordBreakBefore fIstr startfR
  31. .VE
  32. .BE
  33. .SH INTRODUCTION
  34. .PP
  35. Tcl includes a library of Tcl procedures for commonly-needed functions.
  36. The procedures defined in the Tcl library are generic ones suitable
  37. for use by many different applications.
  38. The location of the Tcl library is returned by the fBinfo libraryfR
  39. command.
  40. In addition to the Tcl library, each application will normally have
  41. its own library of support procedures as well;  the location of this
  42. library is normally given by the value of the fB$fIappfB_libraryfR
  43. global variable, where fIappfR is the name of the application.
  44. For example, the location of the Tk library is kept in the variable
  45. fB$tk_libraryfR.
  46. .PP
  47. To access the procedures in the Tcl library, an application should
  48. source the file fBinit.tclfR in the library, for example with
  49. the Tcl command
  50. .CS
  51. fBsource [file join [info library] init.tcl]fR
  52. .CE
  53. If the library procedure fBTcl_InitfR is invoked from an application's
  54. fBTcl_AppInitfR procedure, this happens automatically.
  55. The code in fBinit.tclfR will define the fBunknownfR procedure
  56. and arrange for the other procedures to be loaded on-demand using
  57. the auto-load mechanism defined below.
  58. .SH "COMMAND PROCEDURES"
  59. .PP
  60. The following procedures are provided in the Tcl library:
  61. .TP
  62. fBauto_execok fIcmdfR
  63. Determines whether there is an executable file or shell builtin
  64. by the name fIcmdfR.  If so, it returns a list of arguments to be
  65. passed to fBexecfR to execute the executable file or shell builtin
  66. named by fIcmdfR.  If not, it returns an empty string.  This command
  67. examines the directories in the current search path (given by the PATH
  68. environment variable) in its search for an executable file named
  69. fIcmdfR.  On Windows platforms, the search is expanded with the same
  70. directories and file extensions as used by fBexecfR. fBAuto_execfR
  71. remembers information about previous searches in an array named
  72. fBauto_execsfR;  this avoids the path search in future calls for the
  73. same fIcmdfR.  The command fBauto_resetfR may be used to force
  74. fBauto_execokfR to forget its cached information.
  75. .TP
  76. fBauto_import fIpatternfR
  77. fBAuto_importfR is invoked during fBnamespace importfR to see if
  78. the imported commands specified by fIpatternfR reside in an
  79. autoloaded library.  If so, the commands are loaded so that they will
  80. be available to the interpreter for creating the import links.  If the
  81. commands do not reside in an autoloaded library, fBauto_importfR
  82. does nothing.  The pattern matching is performed according to the
  83. matching rules of fBnamespace importfR.
  84. .TP
  85. fBauto_load fIcmdfR
  86. This command attempts to load the definition for a Tcl command named
  87. fIcmdfR.  To do this, it searches an fIauto-load pathfR, which is
  88. a list of one or more directories.  The auto-load path is given by the
  89. global variable fB$auto_pathfR if it exists.  If there is no
  90. fB$auto_pathfR variable, then the TCLLIBPATH environment variable is
  91. used, if it exists.  Otherwise the auto-load path consists of just the
  92. Tcl library directory.  Within each directory in the auto-load path
  93. there must be a file fBtclIndexfR that describes one or more
  94. commands defined in that directory and a script to evaluate to load
  95. each of the commands.  The fBtclIndexfR file should be generated
  96. with the fBauto_mkindexfR command.  If fIcmdfR is found in an
  97. index file, then the appropriate script is evaluated to create the
  98. command.  The fBauto_loadfR command returns 1 if fIcmdfR was
  99. successfully created.  The command returns 0 if there was no index
  100. entry for fIcmdfR or if the script didn't actually define fIcmdfR
  101. (e.g. because index information is out of date).  If an error occurs
  102. while processing the script, then that error is returned.
  103. fBAuto_loadfR only reads the index information once and saves it in
  104. the array fBauto_indexfR;  future calls to fBauto_loadfR check for
  105. fIcmdfR in the array rather than re-reading the index files.  The
  106. cached index information may be deleted with the command
  107. fBauto_resetfR.  This will force the next fBauto_loadfR command to
  108. reload the index database from disk.
  109. .TP
  110. fBauto_mkindex fIdir pattern pattern ...fR
  111. Generates an index suitable for use by fBauto_loadfR.  The command
  112. searches fIdirfR for all files whose names match any of the
  113. fIpatternfR arguments (matching is done with the fBglobfR
  114. command), generates an index of all the Tcl command procedures defined
  115. in all the matching files, and stores the index information in a file
  116. named fBtclIndexfR in fIdirfR. If no pattern is given a pattern of
  117. fB*.tclfR will be assumed.  For example, the command
  118. .RS
  119. .CS
  120. fBauto_mkindex foo *.tclfR
  121. .CE
  122. .LP
  123. will read all the fB.tclfR files in subdirectory fBfoofR and
  124. generate a new index file fBfoo/tclIndexfR.
  125. .PP
  126. fBAuto_mkindexfR parses the Tcl scripts by sourcing them into a
  127. slave interpreter and monitoring the proc and namespace commands that
  128. are executed.  Extensions can use the (undocumented)
  129. auto_mkindex_parser package to register other commands that can
  130. contribute to the auto_load index. You will have to read through
  131. auto.tcl to see how this works.
  132. .PP
  133. fBAuto_mkindex_oldfR parses the Tcl scripts in a relatively
  134. unsophisticated way:  if any line contains the word fBprocfR
  135. as its first characters then it is assumed to be a procedure
  136. definition and the next word of the line is taken as the
  137. procedure's name.
  138. Procedure definitions that don't appear in this way (e.g. they
  139. have spaces before the fBprocfR) will not be indexed.  If your 
  140. script contains "dangerous" code, such as global initialization
  141. code or procedure names with special characters like fB$fR,
  142. fB*fR, fB[fR or fB]fR, you are safer using auto_mkindex_old.
  143. .RE
  144. .TP
  145. fBauto_resetfR
  146. Destroys all the information cached by fBauto_execokfR and
  147. fBauto_loadfR.  This information will be re-read from disk the next
  148. time it is needed.  fBAuto_resetfR also deletes any procedures
  149. listed in the auto-load index, so that fresh copies of them will be
  150. loaded the next time that they're used.
  151. .TP
  152. fBauto_qualify fIcommand namespacefR
  153. Computes a list of fully qualified names for fIcommandfR.  This list
  154. mirrors the path a standard Tcl interpreter follows for command
  155. lookups:  first it looks for the command in the current namespace, and
  156. then in the global namespace.  Accordingly, if fIcommandfR is
  157. relative and fInamespacefR is not fB::fR, the list returned has
  158. two elements:  fIcommandfR scoped by fInamespacefR, as if it were
  159. a command in the fInamespacefR namespace; and fIcommandfR as if it
  160. were a command in the global namespace.  Otherwise, if either
  161. fIcommandfR is absolute (it begins with fB::fR), or
  162. fInamespacefR is fB::fR, the list contains only fIcommandfR as
  163. if it were a command in the global namespace.
  164. .RS
  165. .PP
  166. fBAuto_qualifyfR is used by the auto-loading facilities in Tcl, both
  167. for producing auto-loading indexes such as fIpkgIndex.tclfR, and for
  168. performing the actual auto-loading of functions at runtime.
  169. .RE
  170. .TP
  171. fBtcl_findLibrary fIbasename version patch initScript enVarName varNamefR
  172. This is a standard search procedure for use by extensions during
  173. their initialization.  They call this procedure to look for their
  174. script library in several standard directories.
  175. The last component of the name of the library directory is 
  176. normally fIbasenameversionfP
  177. (e.g., tk8.0), but it might be "library" when in the build hierarchies.
  178. The fIinitScriptfR file will be sourced into the interpreter
  179. once it is found.  The directory in which this file is found is
  180. stored into the global variable fIvarNamefP.
  181. If this variable is already defined (e.g., by C code during
  182. application initialization) then no searching is done.
  183. Otherwise the search looks in these directories:
  184. the directory named by the environment variable fIenVarNamefP;
  185. relative to the Tcl library directory;
  186. relative to the executable file in the standard installation
  187. bin or bin/fIarchfP directory;
  188. relative to the executable file in the current build tree;
  189. relative to the executable file in a parallel build tree.
  190. .TP
  191. fBparray fIarrayNamefR
  192. Prints on standard output the names and values of all the elements
  193. in the array fIarrayNamefR.
  194. fBArrayNamefR must be an array accessible to the caller of fBparrayfR.
  195. It may be either local or global.
  196. .TP
  197. fBtcl_endOfWord fIstr startfR
  198. .VS
  199. Returns the index of the first end-of-word location that occurs after
  200. a starting index fIstartfR in the string fIstrfR.  An end-of-word
  201. location is defined to be the first non-word character following the
  202. first word character after the starting point.  Returns -1 if there
  203. are no more end-of-word locations after the starting point.  See the
  204. description of fBtcl_wordcharsfR and fBtcl_nonwordcharsfR below
  205. for more details on how Tcl determines which characters are word
  206. characters.
  207. .TP
  208. fBtcl_startOfNextWord fIstr startfR
  209. Returns the index of the first start-of-word location that occurs
  210. after a starting index fIstartfR in the string fIstrfR.  A
  211. start-of-word location is defined to be the first word character
  212. following a non-word character.  Returns -1 if there are no more
  213. start-of-word locations after the starting point.
  214. .TP
  215. fBtcl_startOfPreviousWord fIstr startfR
  216. Returns the index of the first start-of-word location that occurs
  217. before a starting index fIstartfR in the string fIstrfR.  Returns
  218. -1 if there are no more start-of-word locations before the starting
  219. point.
  220. .TP
  221. fBtcl_wordBreakAfter fIstr startfR
  222. Returns the index of the first word boundary after the starting index
  223. fIstartfR in the string fIstrfR.  Returns -1 if there are no more
  224. boundaries after the starting point in the given string.  The index
  225. returned refers to the second character of the pair that comprises a
  226. boundary.
  227. .TP
  228. fBtcl_wordBreakBefore fIstr startfR
  229. Returns the index of the first word boundary before the starting index
  230. fIstartfR in the string fIstrfR.  Returns -1 if there are no more
  231. boundaries before the starting point in the given string.  The index
  232. returned refers to the second character of the pair that comprises a
  233. boundary.
  234. .VE
  235. .SH "VARIABLES"
  236. .PP
  237. The following global variables are defined or used by the procedures in
  238. the Tcl library:
  239. .TP
  240. fBauto_execsfR
  241. Used by fBauto_execokfR to record information about whether
  242. particular commands exist as executable files.
  243. .TP
  244. fBauto_indexfR
  245. Used by fBauto_loadfR to save the index information read from
  246. disk.
  247. .TP
  248. fBauto_noexecfR
  249. If set to any value, then fBunknownfR will not attempt to auto-exec
  250. any commands.
  251. .TP
  252. fBauto_noloadfR
  253. If set to any value, then fBunknownfR will not attempt to auto-load
  254. any commands.
  255. .TP
  256. fBauto_pathfR
  257. If set, then it must contain a valid Tcl list giving directories to
  258. search during auto-load operations.
  259. This variable is initialized during startup to contain, in order:
  260. the directories listed in the TCLLIBPATH environment variable,
  261. the directory named by the $tcl_library variable,
  262. the parent directory of $tcl_library,
  263. the directories listed in the $tcl_pkgPath variable.
  264. .TP
  265. fBenv(TCL_LIBRARY)fR
  266. If set, then it specifies the location of the directory containing
  267. library scripts (the value of this variable will be
  268. assigned to the fBtcl_libraryfR variable and therefore returned by
  269. the command fBinfo libraryfR).  If this variable isn't set then
  270. a default value is used.
  271. .TP
  272. fBenv(TCLLIBPATH)fR
  273. If set, then it must contain a valid Tcl list giving directories to
  274. search during auto-load operations.  Directories must be specified in 
  275. Tcl format, using "/" as the path separator, regardless of platform.
  276. This variable is only used when initializing the fBauto_pathfR variable.
  277. .TP
  278. fBtcl_nonwordcharsfR
  279. .VS
  280. This variable contains a regular expression that is used by routines
  281. like fBtcl_endOfWordfR to identify whether a character is part of a
  282. word or not.  If the pattern matches a character, the character is
  283. considered to be a non-word character.  On Windows platforms, spaces,
  284. tabs, and newlines are considered non-word characters.  Under Unix,
  285. everything but numbers, letters and underscores are considered
  286. non-word characters.
  287. .TP
  288. fBtcl_wordcharsfR
  289. This variable contains a regular expression that is used by routines
  290. like fBtcl_endOfWordfR to identify whether a character is part of a
  291. word or not.  If the pattern matches a character, the character is
  292. considered to be a word character.  On Windows platforms, words are
  293. comprised of any character that is not a space, tab, or newline.  Under
  294. Unix, words are comprised of numbers, letters or underscores.
  295. .VE
  296. .TP
  297. fBunknown_pendingfR
  298. Used by fBunknownfR to record the command(s) for which it is
  299. searching.
  300. It is used to detect errors where fBunknownfR recurses on itself
  301. infinitely.
  302. The variable is unset before fBunknownfR returns.
  303. .SH "SEE ALSO"
  304. info(n), re_syntax(n)
  305. .SH KEYWORDS
  306. auto-exec, auto-load, library, unknown, word, whitespace