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

通讯编程

开发平台:

Visual C++

  1. '"
  2. '" Copyright (c) 1993 The Regents of the University of California.
  3. '" Copyright (c) 1994-1997 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: tclvars.n,v 1.13.2.3 2005/07/26 21:39:22 dgp Exp $
  9. '" 
  10. .so man.macros
  11. .TH tclvars n 8.0 Tcl "Tcl Built-In Commands"
  12. .BS
  13. '" Note:  do not modify the .SH NAME line immediately below!
  14. .SH NAME
  15. tclvars - Variables used by Tcl
  16. .BE
  17. .SH DESCRIPTION
  18. .PP
  19. The following global variables are created and managed automatically
  20. by the Tcl library.  Except where noted below, these variables should
  21. normally be treated as read-only by application-specific code and by users.
  22. .TP
  23. fBenvfR
  24. This variable is maintained by Tcl as an array
  25. whose elements are the environment variables for the process.
  26. Reading an element will return the value of the corresponding
  27. environment variable.
  28. Setting an element of the array will modify the corresponding
  29. environment variable or create a new one if it doesn't already
  30. exist.
  31. Unsetting an element of fBenvfR will remove the corresponding
  32. environment variable.
  33. Changes to the fBenvfR array will affect the environment
  34. passed to children by commands like fBexecfR.
  35. If the entire fBenvfR array is unset then Tcl will stop
  36. monitoring fBenvfR accesses and will not update environment
  37. variables.
  38. .RS
  39. .VS 8.0 
  40. Under Windows, the environment variables PATH and COMSPEC in any
  41. capitalization are converted automatically to upper case.  For instance, the
  42. PATH variable could be exported by the operating system as ``path'',
  43. ``Path'', ``PaTh'', etc., causing otherwise simple Tcl code to have to
  44. support many special cases.  All other environment variables inherited by
  45. Tcl are left unmodified.  Setting an env array variable to blank is the
  46. same as unsetting it as this is the behavior of the underlying Windows OS.
  47. It should be noted that relying on an existing and empty environment variable
  48. won't work on windows and is discouraged for cross-platform usage.
  49. .VE
  50. .RE
  51. .RS
  52. On the Macintosh, the environment variable is constructed by Tcl as no
  53. global environment variable exists.  The environment variables that
  54. are created for Tcl include:
  55. .TP
  56. fBLOGINfR
  57. This holds the Chooser name of the Macintosh.
  58. .TP
  59. fBUSERfR
  60. This also holds the Chooser name of the Macintosh.
  61. .TP
  62. fBSYS_FOLDERfR
  63. The path to the system directory.
  64. .TP
  65. fBAPPLE_M_FOLDERfR
  66. The path to the Apple Menu directory.
  67. .TP
  68. fBCP_FOLDERfR
  69. The path to the control panels directory.
  70. .TP
  71. fBDESK_FOLDERfR
  72. The path to the desk top directory.
  73. .TP
  74. fBEXT_FOLDERfR
  75. The path to the system extensions directory.
  76. .TP
  77. fBPREF_FOLDERfR
  78. The path to the preferences directory.
  79. .TP
  80. fBPRINT_MON_FOLDERfR
  81. The path to the print monitor directory.
  82. .TP
  83. fBSHARED_TRASH_FOLDERfR
  84. The path to the network trash directory.
  85. .TP
  86. fBTRASH_FOLDERfR
  87. The path to the trash directory.
  88. .TP
  89. fBSTART_UP_FOLDERfR
  90. The path to the start up directory.
  91. .TP
  92. fBHOMEfR
  93. The path to the application's default directory.
  94. .PP
  95. You can also create your own environment variables for the Macintosh.
  96. A file named  fITcl Environment VariablesfR may be placed in the
  97. preferences folder in the Mac system folder.  Each line of this file
  98. should be of the form fIVAR_NAME=var_datafR.
  99. .PP
  100. The last alternative is to place environment variables in a 'STR#' 
  101. resource named fITcl Environment VariablesfR of the application.  This
  102. is considered a little more ``Mac like'' than a Unix style Environment
  103. Variable file.  Each entry in the 'STR#' resource has the same format
  104. as above.  The source code file fItclMacEnv.cfR contains the
  105. implementation of the env mechanisms.  This file contains many
  106. #define's that allow customization of the env mechanisms to fit your
  107. applications needs.
  108. .RE
  109. .TP
  110. fBerrorCodefR
  111. After an error has occurred, this variable will be set to hold
  112. a list value representing additional information about the error
  113. in a form that is easy to process with programs.
  114. The first element of the list identifies a general class of
  115. errors, and determines the format of the rest of the list.
  116. The following formats for fBerrorCodefR are used by the
  117. Tcl core; individual applications may define additional formats.
  118. .RS
  119. .TP
  120. fBARITHfI code msgfR
  121. This format is used when an arithmetic error occurs (e.g. an attempt
  122. to divide by zero in the fBexprfR command).
  123. fICodefR identifies the precise error and fImsgfR provides a
  124. human-readable description of the error.  fICodefR will be either
  125. DIVZERO (for an attempt to divide by zero),
  126. DOMAIN (if an argument is outside the domain of a function, such as acos(-3)),
  127. IOVERFLOW (for integer overflow),
  128. OVERFLOW (for a floating-point overflow),
  129. or UNKNOWN (if the cause of the error cannot be determined).
  130. .TP
  131. fBCHILDKILLEDfI pid sigName msgfR
  132. This format is used when a child process has been killed because of
  133. a signal.  The second element of fBerrorCodefR will be the
  134. process's identifier (in decimal).
  135. The third element will be the symbolic name of the signal that caused
  136. the process to terminate; it will be one of the names from the
  137. include file signal.h, such as fBSIGPIPEfR.
  138. The fourth element will be a short human-readable message
  139. describing the signal, such as ``write on pipe with no readers''
  140. for fBSIGPIPEfR.
  141. .TP
  142. fBCHILDSTATUSfI pid codefR
  143. This format is used when a child process has exited with a non-zero
  144. exit status.  The second element of fBerrorCodefR will be the
  145. process's identifier (in decimal) and the third element will be the exit
  146. code returned by the process (also in decimal).
  147. .TP
  148. fBCHILDSUSPfI pid sigName msgfR
  149. This format is used when a child process has been suspended because
  150. of a signal.
  151. The second element of fBerrorCodefR will be the process's identifier,
  152. in decimal.
  153. The third element will be the symbolic name of the signal that caused
  154. the process to suspend; this will be one of the names from the
  155. include file signal.h, such as fBSIGTTINfR.
  156. The fourth element will be a short human-readable message
  157. describing the signal, such as ``background tty read''
  158. for fBSIGTTINfR.
  159. .TP
  160. fBNONEfR
  161. This format is used for errors where no additional information is
  162. available for an error besides the message returned with the
  163. error.  In these cases fBerrorCodefR will consist of a list
  164. containing a single element whose contents are fBNONEfR.
  165. .TP
  166. fBPOSIX fIerrName msgfR
  167. If the first element of fBerrorCodefR is fBPOSIXfR, then
  168. the error occurred during a POSIX kernel call.
  169. The second element of the list will contain the symbolic name
  170. of the error that occurred, such as fBENOENTfR; this will
  171. be one of the values defined in the include file errno.h.
  172. The third element of the list will be a human-readable
  173. message corresponding to fIerrNamefR, such as
  174. ``no such file or directory'' for the fBENOENTfR case.
  175. .PP
  176. To set fBerrorCodefR, applications should use library
  177. procedures such as fBTcl_SetErrorCodefR and fBTcl_PosixErrorfR,
  178. or they may invoke the fBerrorfR command.
  179. If one of these methods hasn't been used, then the Tcl
  180. interpreter will reset the variable to fBNONEfR after
  181. the next error.
  182. .RE
  183. .TP
  184. fBerrorInfofR
  185. After an error has occurred, this string will contain one or more lines
  186. identifying the Tcl commands and procedures that were being executed
  187. when the most recent error occurred.
  188. Its contents take the form of a stack trace showing the various
  189. nested Tcl commands that had been invoked at the time of the error.
  190. .TP
  191. fBtcl_libraryfR
  192. This variable holds the name of a directory containing the
  193. system library of Tcl scripts, such as those used for auto-loading.
  194. The value of this variable is returned by the fBinfo libraryfR command.
  195. See the fBlibraryfR manual entry for details of the facilities 
  196. provided by the Tcl script library.
  197. Normally each application or package will have its own application-specific
  198. script library in addition to the Tcl script library;
  199. each application should set a global variable with a name like
  200. fB$fIappfB_libraryfR (where fIappfR is the application's name)
  201. to hold the network file name for that application's library directory.
  202. The initial value of fBtcl_libraryfR is set when an interpreter
  203. is created by searching several different directories until one is
  204. found that contains an appropriate Tcl startup script.
  205. If the fBTCL_LIBRARYfR environment variable exists, then
  206. the directory it names is checked first.
  207. If fBTCL_LIBRARYfR isn't set or doesn't refer to an appropriate
  208. directory, then Tcl checks several other directories based on a
  209. compiled-in default location, the location of the binary containing
  210. the application, and the current working directory.
  211. .TP
  212. fBtcl_patchLevelfR
  213. When an interpreter is created Tcl initializes this variable to
  214. hold a string giving the current patch level for Tcl, such as
  215. fB7.3p2fR for Tcl 7.3 with the first two official patches, or
  216. fB7.4b4fR for the fourth beta release of Tcl 7.4.
  217. The value of this variable is returned by the fBinfo patchlevelfR
  218. command.
  219. .VS 8.0 br
  220. .TP
  221. fBtcl_pkgPathfR
  222. This variable holds a list of directories indicating where packages are
  223. normally installed.  It is not used on Windows.  It typically contains
  224. either one or two entries; if it contains two entries, the first is
  225. normally a directory for platform-dependent packages (e.g., shared library
  226. binaries) and the second is normally a directory for platform-independent
  227. packages (e.g., script files). Typically a package is installed as a
  228. subdirectory of one of the entries in fB$tcl_pkgPathfR. The directories
  229. in fB$tcl_pkgPathfR are included by default in the fBauto_pathfR
  230. variable, so they and their immediate subdirectories are automatically
  231. searched for packages during fBpackage requirefR commands.  Note:
  232. fBtcl_pkgPathfR it not intended to be modified by the application.  Its
  233. value is added to fBauto_pathfR at startup; changes to fBtcl_pkgPathfR
  234. are not reflected in fBauto_pathfR.  If you want Tcl to search additional
  235. directories for packages you should add the names of those directories to
  236. fBauto_pathfR, not fBtcl_pkgPathfR.
  237. .VE
  238. .TP
  239. fBtcl_platformfR
  240. This is an associative array whose elements contain information about
  241. the platform on which the application is running, such as the name of
  242. the operating system, its current release number, and the machine's
  243. instruction set.  The elements listed below will always
  244. be defined, but they may have empty strings as values if Tcl couldn't
  245. retrieve any relevant information.  In addition, extensions
  246. and applications may add additional values to the array.  The
  247. predefined elements are:
  248. .RS
  249. .VS
  250. .TP
  251. fBbyteOrderfR
  252. The native byte order of this machine: either fBlittleEndianfR or
  253. fBbigEndianfR. 
  254. .VE
  255. .TP
  256. fBdebugfR
  257. If this variable exists, then the interpreter was compiled with and linked
  258. to a debug-enabled C run-time.  This variable will only exist on Windows,
  259. so extension writers can specify which package to load depending on the
  260. C run-time library that is in use.  This is not an indication that this core
  261. contains symbols.
  262. .TP
  263. fBmachinefR
  264. The instruction set executed by this machine, such as
  265. fBintelfR, fBPPCfR, fB68kfR, or fBsun4mfR.  On UNIX machines, this
  266. is the value returned by fBuname -mfR.
  267. .TP
  268. fBosfR 
  269. The name of the operating system running on this machine,
  270. such as fBWindows 95fR, fBWindows NTfR, fBMacOSfR, or fBSunOSfR.
  271. On UNIX machines, this is the value returned by fBuname -sfR.
  272. On Windows 95 and Windows 98, the value returned will be fBWindows
  273. 95fR to provide better backwards compatibility to Windows 95; to
  274. distinguish between the two, check the fBosVersionfR.
  275. .TP
  276. fBosVersionfR
  277. The version number for the operating system running on this machine.
  278. On UNIX machines, this is the value returned by fBuname -rfR.  On
  279. Windows 95, the version will be 4.0; on Windows 98, the version will
  280. be 4.10.
  281. .TP
  282. fBplatformfR
  283. Either fBwindowsfR, fBmacintoshfR, or fBunixfR.  This identifies the
  284. general operating environment of the machine.
  285. .TP
  286. fBthreadedfR
  287. If this variable exists, then the interpreter
  288. was compiled with threads enabled.
  289. .TP
  290. fBuserfR
  291. This identifies the
  292. current user based on the login information available on the platform.
  293. This comes from the USER or LOGNAME environment variable on Unix,
  294. and the value from GetUserName on Windows and Macintosh.
  295. .TP
  296. fBwordSizefR
  297. .VS 8.4
  298. This gives the size of the native-machine word in bytes (strictly, it
  299. is same as the result of evaluating fIsizeof(long)fR in C.)
  300. .VE 8.4
  301. .RE
  302. .TP
  303. fBtcl_precisionfR
  304. .VS
  305. This variable controls the number of digits to generate
  306. when converting floating-point values to strings.  It defaults
  307. to 12.
  308. 17 digits is ``perfect'' for IEEE floating-point in that it allows
  309. double-precision values to be converted to strings and back to
  310. binary with no loss of information.  However, using 17 digits prevents
  311. any rounding, which produces longer, less intuitive results.  For example,
  312. fBexpr 1.4fR returns 1.3999999999999999 with fBtcl_precisionfR
  313. set to 17, vs. 1.4 if fBtcl_precisionfR is 12.
  314. .RS
  315. All interpreters in a process share a single fBtcl_precisionfR value:
  316. changing it in one interpreter will affect all other interpreters as
  317. well.  However, safe interpreters are not allowed to modify the
  318. variable.
  319. .RE
  320. .VE
  321. .TP
  322. fBtcl_rcFileNamefR
  323. This variable is used during initialization to indicate the name of a
  324. user-specific startup file.  If it is set by application-specific
  325. initialization, then the Tcl startup code will check for the existence
  326. of this file and fBsourcefR it if it exists.  For example, for fBwishfR
  327. the variable is set to fB~/.wishrcfR for Unix and fB~/wishrc.tclfR
  328. for Windows.
  329. .TP
  330. fBtcl_rcRsrcNamefR
  331. This variable is only used on Macintosh systems.  The variable is used
  332. during initialization to indicate the name of a user-specific
  333. fBTEXTfR resource located in the application or extension resource
  334. forks.  If it is set by application-specific initialization, then the
  335. Tcl startup code will check for the existence of this resource and
  336. fBsourcefR it if it exists.  For example, the Macintosh fBwishfR
  337. application has the variable is set to fBtclshrcfR.
  338. .TP
  339. fBtcl_traceCompilefR
  340. The value of this variable can be set to control
  341. how much tracing information
  342. is displayed during bytecode compilation.
  343. By default, tcl_traceCompile is zero and no information is displayed.
  344. Setting tcl_traceCompile to 1 generates a one-line summary in stdout
  345. whenever a procedure or top-level command is compiled.
  346. Setting it to 2 generates a detailed listing in stdout of the
  347. bytecode instructions emitted during every compilation.
  348. This variable is useful in
  349. tracking down suspected problems with the Tcl compiler.
  350. It is also occasionally useful when converting
  351. existing code to use Tcl8.0.
  352. .PP
  353. This variable and functionality only exist if
  354. fBTCL_COMPILE_DEBUGfR was defined during Tcl's compilation.
  355. .TP
  356. fBtcl_traceExecfR
  357. The value of this variable can be set to control
  358. how much tracing information
  359. is displayed during bytecode execution.
  360. By default, tcl_traceExec is zero and no information is displayed.
  361. Setting tcl_traceExec to 1 generates a one-line trace in stdout
  362. on each call to a Tcl procedure.
  363. Setting it to 2 generates a line of output
  364. whenever any Tcl command is invoked
  365. that contains the name of the command and its arguments.
  366. Setting it to 3 produces a detailed trace showing the result of
  367. executing each bytecode instruction.
  368. Note that when tcl_traceExec is 2 or 3,
  369. commands such as fBsetfR and fBincrfR
  370. that have been entirely replaced by a sequence
  371. of bytecode instructions are not shown.
  372. Setting this variable is useful in
  373. tracking down suspected problems with the bytecode compiler
  374. and interpreter.
  375. It is also occasionally useful when converting
  376. code to use Tcl8.0.
  377. .PP
  378. This variable and functionality only exist if
  379. fBTCL_COMPILE_DEBUGfR was defined during Tcl's compilation.
  380. .TP
  381. fBtcl_wordcharsfR
  382. The value of this variable is a regular expression that can be set to
  383. control what are considered ``word'' characters, for instances like
  384. selecting a word by double-clicking in text in Tk.  It is platform
  385. dependent.  On Windows, it defaults to fB\SfR, meaning anything
  386. but a Unicode space character.  Otherwise it defaults to fB\wfR,
  387. which is any Unicode word character (number, letter, or underscore).
  388. .TP
  389. fBtcl_nonwordcharsfR
  390. The value of this variable is a regular expression that can be set to
  391. control what are considered ``non-word'' characters, for instances like
  392. selecting a word by double-clicking in text in Tk.  It is platform
  393. dependent.  On Windows, it defaults to fB\sfR, meaning any Unicode space
  394. character.  Otherwise it defaults to fB\WfR, which is anything but a
  395. Unicode word character (number, letter, or underscore).
  396. .TP
  397. fBtcl_versionfR
  398. When an interpreter is created Tcl initializes this variable to
  399. hold the version number for this version of Tcl in the form fIx.yfR.
  400. Changes to fIxfR represent major changes with probable
  401. incompatibilities and changes to fIyfR represent small enhancements and
  402. bug fixes that retain backward compatibility.
  403. The value of this variable is returned by the fBinfo tclversionfR
  404. command.
  405. .SH "OTHER GLOBAL VARIABLES"
  406. The following variables are only guaranteed to exist in fBtclshfR
  407. and fBwishfR executables; the Tcl library does not define them
  408. itself but many Tcl environments do.
  409. .TP 6
  410. fBargcfR
  411. The number of arguments to fBtclshfR or fBwishfR.
  412. .TP 6
  413. fBargvfR
  414. Tcl list of arguments to fBtclshfR or fBwishfR.
  415. .TP 6
  416. fBargv0fR
  417. The script that fBtclshfR or fBwishfR started executing (if it was
  418. specified) or otherwise the name by which fBtclshfR or fBwishfR
  419. was invoked.
  420. .TP 6
  421. fBtcl_interactivefR
  422. Contains 1 if fBtclshfR or fBwishfR is running interactively (no
  423. script was specified and standard input is a terminal-like device), 0
  424. otherwise.
  425. .PP
  426. The fBwishfR executably additionally specifies the following global
  427. variable:
  428. .TP 6
  429. fBgeometryfR
  430. If set, contains the user-supplied geometry specification to use for
  431. the main Tk window.
  432. .SH "SEE ALSO"
  433. eval(n), tclsh(1), wish(1)
  434. .SH KEYWORDS
  435. arithmetic, bytecode, compiler, error, environment, POSIX, precision, subprocess, variables