Provided by: tcl8.4-doc_8.4.20-7_all bug

NAME

       info - Return information about the state of the Tcl interpreter

SYNOPSIS

       info option ?arg arg ...?
_________________________________________________________________

DESCRIPTION

       This  command  provides  information  about various internals of the Tcl interpreter.  The legal option's
       (which may be abbreviated) are:

       info args procname
              Returns a list containing the names of the arguments to procedure procname,  in  order.   Procname
              must be the name of a Tcl command procedure.

       info body procname
              Returns the body of procedure procname.  Procname must be the name of a Tcl command procedure.

       info cmdcount
              Returns a count of the total number of commands that have been invoked in this interpreter.

       info commands ?pattern?
              If  pattern  isn't  specified,  returns  a  list  of  names of all the Tcl commands in the current
              namespace, including both the built-in commands written in C and the  command  procedures  defined
              using  the proc command.  If pattern is specified, only those names matching pattern are returned.
              Matching is determined using the same rules as for string match.  pattern can be a qualified  name
              like  Foo::print*.   That  is, it may specify a particular namespace using a sequence of namespace
              names separated by double colons (::), and may have pattern matching special characters at the end
              to specify a set of commands in that namespace.  If pattern is a  qualified  name,  the  resulting
              list of command names has each one qualified with the name of the specified namespace.

       info complete command
              Returns  1 if command is a complete Tcl command in the sense of having no unclosed quotes, braces,
              brackets or array element names.  If the command doesn't appear to be complete then 0 is returned.
              This command is typically used in line-oriented input environments  to  allow  users  to  type  in
              commands that span multiple lines;  if the command isn't complete, the script can delay evaluating
              it until additional lines have been typed to complete the command.

       info default procname arg varname
              Procname  must  be  the name of a Tcl command procedure and arg must be the name of an argument to
              that procedure.  If arg doesn't have a default value then the command  returns  0.   Otherwise  it
              returns 1 and places the default value of arg into variable varname.

       info exists varName
              Returns 1 if the variable named varName exists in the current context (either as a global or local
              variable) and has been defined by being given a value, returns 0 otherwise.                        2

       info functions ?pattern?                                                                                  2
              If  pattern  isn't  specified,  returns  a  list  of all the math functions currently defined.  If 2
              pattern is specified, only those functions whose name matches pattern are returned.   Matching  is 2
              determined using the same rules as for string match.

       info globals ?pattern?
              If pattern isn't specified, returns a list of all the names of currently-defined global variables.
              Global variables are variables in the global namespace.  If pattern is specified, only those names
              matching pattern are returned.  Matching is determined using the same rules as for string match.

       info hostname
              Returns  the name of the computer on which this invocation is being executed.  Note that this name 2
              is not guaranteed to be the fully qualified domain name of the host.  Where machines have  several 2
              different  names  (as  is  common  on  systems with both TCP/IP (DNS) and NetBIOS-based networking 2
              installed,) it is the name that is suitable for TCP/IP networking that is returned.

       info level ?number?
              If number is not specified, this command returns a number giving the stack level of  the  invoking
              procedure,  or  0 if the command is invoked at top-level.  If number is specified, then the result
              is a list consisting of the name and arguments for the procedure  call  at  level  number  on  the
              stack.   If  number is positive then it selects a particular stack level (1 refers to the top-most
              active procedure, 2 to the procedure it called, and so on); otherwise it gives a level relative to
              the current level (0 refers to the current procedure, -1 to its  caller,  and  so  on).   See  the
              uplevel command for more information on what stack levels mean.

       info library
              Returns  the  name  of  the  library  directory in which standard Tcl scripts are stored.  This is
              actually the value of the tcl_library variable and may be changed by setting tcl_library.  See the
              tclvars manual entry for more information.

       info loaded ?interp?
              Returns a list describing all of the packages that have been loaded  into  interp  with  the  load
              command.   Each  list  element  is a sub-list with two elements consisting of the name of the file
              from which the package was loaded and the name of the package.  For statically-loaded packages the
              file name will be an empty string.  If interp is omitted then  information  is  returned  for  all
              packages  loaded  in  any  interpreter  in the process.  To get a list of just the packages in the
              current interpreter, specify an empty string for the interp argument.

       info locals ?pattern?
              If pattern isn't specified, returns a list of all the names of currently-defined local  variables,
              including  arguments  to  the current procedure, if any.  Variables defined with the global, upvar
              and variable commands will not be returned.  If pattern is specified, only  those  names  matching
              pattern are returned.  Matching is determined using the same rules as for string match.

       info nameofexecutable
              Returns  the full path name of the binary file from which the application was invoked.  If Tcl was
              unable to identify the file, then an empty string is returned.

       info patchlevel
              Returns the value of the global variable tcl_patchLevel; see the tclvars  manual  entry  for  more
              information.

       info procs ?pattern?
              If  pattern  isn't  specified,  returns  a  list of all the names of Tcl command procedures in the
              current namespace.  If pattern is specified, only those procedure names in the  current  namespace
              matching  pattern  are returned.  Matching is determined using the same rules as for string match.
              If pattern contains any namespace separators, they are used to select a namespace relative to  the
              current namespace (or relative to the global namespace if pattern starts with ::) to match within;
              the matching pattern is taken to be the part after the last namespace separator.

       info script ?filename?
              If  a Tcl script file is currently being evaluated (i.e. there is a call to Tcl_EvalFile active or
              there is an active invocation of the source command), then this command returns the  name  of  the
              innermost  file  being processed.  If filename is specified, then the return value of this command
              will be modified for the duration of the active invocation to return that name.  This is useful in
              virtual file system applications.  Otherwise the command returns an empty string.

       info sharedlibextension
              Returns the extension used on this platform for the names of  files  containing  shared  libraries
              (for  example,  .so under Solaris).  If shared libraries aren't supported on this platform then an
              empty string is returned.

       info tclversion
              Returns the value of the global variable tcl_version;  see  the  tclvars  manual  entry  for  more
              information.

       info vars ?pattern?
              If  pattern isn't specified, returns a list of all the names of currently-visible variables.  This
              includes locals and currently-visible globals.  If pattern is specified, only those names matching
              pattern are returned.  Matching is determined using the same rules as for string  match.   pattern
              can be a qualified name like Foo::option*.  That is, it may specify a particular namespace using a
              sequence of namespace names separated by double colons (::), and may have pattern matching special
              characters  at the end to specify a set of variables in that namespace.  If pattern is a qualified
              name, the resulting list of variable names has each matching namespace variable qualified with the
              name of its namespace.  Note that a currently-visible variable may not yet "exist" if it  has  not
              been set (e.g. a variable declared but not set by variable).

EXAMPLE

       This command prints out a procedure suitable for saving in a Tcl script:
              proc printProc {procName} {
                  set result [list proc $procName]
                  set formals {}
                  foreach var [info args $procName] {
                      if {[info default $procName $var def]} {
                          lappend formals [list $var $def]
                      } else {
                          # Still need the list-quoting because variable
                          # names may properly contain spaces.
                          lappend formals [list $var]
                      }
                  }
                  puts [lappend result $formals [info body $procName]]
              }

SEE ALSO

       global(3tcl), proc(3tcl)

KEYWORDS

       command, information, interpreter, level, namespace, procedure, variable

Tcl                                                    8.4                                            info(3tcl)