2018-02-05 17:22:04 +03:00
|
|
|
|
<!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
<html>
|
|
|
|
|
<head>
|
|
|
|
|
<title>tclvars</title>
|
|
|
|
|
</head>
|
|
|
|
|
|
|
|
|
|
<body>
|
|
|
|
|
<h1>tclvars</h1>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p>Переменные, используемые Tcl.</p>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<h2>ОПИСАНИЕ</h2>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p>Следующие глобальные переменные автоматически создаются при
|
|
|
|
|
запуске программ. Как правило, они ведутся автоматически и в
|
|
|
|
|
пользовательском приложении их значения не изменяются.</p>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<dl>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dt><a name=env></a><strong>env</strong></dt>
|
|
|
|
|
|
|
|
|
|
<dd><p>Эта переменная представляет собой массив, элементы
|
|
|
|
|
которого соответствуют переменным окружения. Присвоение
|
|
|
|
|
значения элементу массива приводит к изменению значения (или
|
|
|
|
|
созданию) соответствующей переменной окружения. Удаление
|
|
|
|
|
элемента массива с помощью команды <strong><a href=
|
|
|
|
|
unset.html>unset</a></strong> удаляет соответствующую
|
|
|
|
|
переменную окружения. Модифицированное состояние массива
|
|
|
|
|
используется для процессов - потомков, запущенных командой
|
|
|
|
|
<strong><a href=exec.html>exec</a></strong>.
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</p>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p>На Windows-платформах переменные <strong>PATH</strong>,
|
|
|
|
|
<strong>COMSPEC</strong> и <strong>WINDIR</strong> всегда пишутся в верхнем
|
|
|
|
|
регистре. Все остальные переменные оставляются в том виде, в
|
|
|
|
|
каком они заданы в операционной системе.</p>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p>На Macintosh-платформах, на которых нет переменных
|
|
|
|
|
окружения, автоматически формируемый массив <strong>env</strong>, тем
|
|
|
|
|
не менее, содержит следующие элементы:</p>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<p> LOGIN, USER, SYS_FOLDER, APPLE_M_FOLDER, CP_FOLDER,
|
|
|
|
|
DESK_FOLDER, EXT_FOLDER, PREF_FOLDER, PRINT_MON_FOLDER,
|
|
|
|
|
SHARED_TRASH_FOLDER, TRASH_FOLDER, START_UP_FOLDER, PWD
|
|
|
|
|
</p>
|
|
|
|
|
</dd>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dt><a name=errorCode></a><strong>errorCode</strong> </dt>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd><p>При возникновении ошибки эта переменная содержит
|
|
|
|
|
дополнительную информацию об ошибке в форме, удобной для
|
|
|
|
|
автоматической обработки. Эта информация содержится в виде
|
|
|
|
|
списка из одного или более элементов. Первый элемент списка
|
|
|
|
|
содержит имя класса ошибки. Его значение определяет формат
|
|
|
|
|
остальной части списка. Стандартно используются следующие
|
|
|
|
|
классы ошибок (в приложении могут определяться и
|
|
|
|
|
дополнительные классы):</p>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
<dl>
|
|
|
|
|
<dt><strong>ARITH</strong> <em>code</em> <em>msg</em></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd> Этот класс ошибки формируется при арифметической ошибке
|
|
|
|
|
(например, при попытке делить на ноль в команде <a
|
|
|
|
|
href=expr.html><strong>expr</strong></a>). Код <em>code</em>
|
|
|
|
|
определяет конкретный тип ошибки, а <em>msg</em> содержит
|
|
|
|
|
текст с описанием ошибки. Возможные значения кода
|
|
|
|
|
<strong>DIVZERO</strong> (попытка делить на нуль), <strong>DOMAIN</strong>
|
|
|
|
|
(аргумент не принадлежит области определения функции,
|
|
|
|
|
например <em>acos(2)</em>), <strong>IOVERFLOW</strong> (переполнение
|
|
|
|
|
при целочисленных операциях), <strong>OVERFLOW</strong>
|
|
|
|
|
(переполнение при вычислениях с плавающей запятой) или
|
|
|
|
|
<strong>UNKNOWN</strong> (если не удается определить тип ошибки).
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</dd>
|
|
|
|
|
|
|
|
|
|
<dt><strong>CHILDKILLED</strong> <em>pid</em> <em>sigName</em> <em>msg</em></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Этот класс ошибки используется, если выполнение процесса
|
|
|
|
|
- потомка прервано сигналом. Второй элемент списка
|
|
|
|
|
(<em>pid</em>) содержит в этом случае идентификатор
|
|
|
|
|
прерванного процесса. Элемент <em>sigName</em> содержит
|
|
|
|
|
символьное имя сигнала, например <strong>SIGPIPE</strong>, а в
|
|
|
|
|
элементе <em>msg</em> содержит текст с описанием сигнала,
|
|
|
|
|
например "write on pipe with no readers".
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</dd>
|
|
|
|
|
|
|
|
|
|
<dt><strong>CHILDSTATUS</strong> <em>pid</em> <em>code</em></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Этот класс ошибки используется, когда процесс - потомок
|
|
|
|
|
завершается с кодом ошибки. Второй элемент списка
|
|
|
|
|
(<em>pid</em>) содержит в этом случае идентификатор
|
|
|
|
|
прерванного процесса а третий элемент (<em>code</em>) -
|
|
|
|
|
значение кода ошибки.
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</dd>
|
|
|
|
|
|
|
|
|
|
<dt><strong>CHILDSUSP</strong> <em>pid</em> <em>sigName</em> <em>msg</em></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Этот класс ошибки используется, когда выполнение
|
|
|
|
|
процесса-потомка приостановлено из-за сигнала. Элементы
|
|
|
|
|
списка имеют тот же смысл, что и для <strong>CHILDKILLED.</strong>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</dd>
|
|
|
|
|
|
|
|
|
|
<dt><strong>NONE</strong></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Этот класс используется для тех ошибок, для которых
|
|
|
|
|
дополнительная информация не может быть получена,
|
|
|
|
|
поскольку при попытке ее выдать произошла ошибка.
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</dd>
|
|
|
|
|
|
|
|
|
|
<dt><strong>POSIX</strong> <em>errName</em> <em>msg</em></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Этот класс используется для тех ошибок, которые
|
|
|
|
|
происходят при выполнении вызовов <strong>POSIX</strong>. Второй
|
|
|
|
|
элемент списка содержит символическое имя ошибки,
|
|
|
|
|
например, ENOENT, а в элементе <em>msg</em> содержит текст с
|
|
|
|
|
описанием ошибки, например, "no such file or directory".
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</dd>
|
|
|
|
|
</dl>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dt><a name=errorInfo></a><strong>errorInfo</strong></dt>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>При возникновении ошибки эта переменная содержит описание
|
|
|
|
|
команды или процедуры, в которой произошла последняя
|
|
|
|
|
ошибка. Описание построено в виде описания стека, указывающего
|
|
|
|
|
вложенные Tcl-команды, выполнявшиеся при возникновении ошибки.
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</dd>
|
|
|
|
|
|
|
|
|
|
<dt><strong>tcl_library</strong></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>В этой переменной хранится имя каталога, содержащего
|
|
|
|
|
системную библиотеку Tcl-скриптов, используемых, в частности,
|
|
|
|
|
при автозагрузке. Величина этой переменной возвращается
|
|
|
|
|
командой <a href=info.html#library><strong>info</strong>
|
|
|
|
|
<strong>library</strong></a>. Начальное значение переменной формируется
|
|
|
|
|
в результате просмотра ряда каталогов и поиска в них
|
|
|
|
|
соответствующих скриптов. Если задана переменная окружения
|
|
|
|
|
<strong>TCL_LIBRARY</strong>, указанный в ней каталог проверяется
|
|
|
|
|
первым. Если переменная <strong>TCL_LIBRARY</strong> не задана или в ней
|
|
|
|
|
не содержатся необходимые файлы, то просматриваются еще
|
|
|
|
|
несколько каталогов, зависящих от расположения каталогов Tcl и
|
|
|
|
|
текущего каталога.
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</dd>
|
|
|
|
|
|
|
|
|
|
<dt><strong>tcl_patchLevel</strong></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>В этой переменной хранится информация о текущей версии Tcl,
|
|
|
|
|
например <strong>7.3p2</strong> для второй доработки версии 7.3. или
|
|
|
|
|
<strong>7.4b4</strong> для четвертого бета релиза версии 7.4. Значение
|
|
|
|
|
переменной возвращается командой <a
|
|
|
|
|
href=info.html#patchlevel><strong>info</strong> <strong>patchlevel</strong></a>.
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</dd>
|
|
|
|
|
|
|
|
|
|
<dt><strong>tcl_pkgPath</strong></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Переменная содержит список каталогов, используемых для
|
|
|
|
|
размещения пакетов библиотек. Обычно список состоит из двух
|
|
|
|
|
элементов - каталога для бинарных файлов и каталога для
|
|
|
|
|
скриптов. Пакеты обычно устанавливаются как подкаталоги этих
|
|
|
|
|
каталогов. Исходное значение переменной добавляется к списку
|
|
|
|
|
каталогов в <strong>auto_path</strong> и используются для поиска пакетов
|
|
|
|
|
при выполнении команды <a href=
|
|
|
|
|
package.html#require><strong>package</strong> <strong>require</strong></a>.
|
|
|
|
|
Последующие изменения в <strong>tcl_pkgPath</strong> не отражаются в
|
|
|
|
|
переменной <strong>auto_path</strong>. Поэтому дополнительные каталоги
|
|
|
|
|
для поиска пакетов необходимо указывать (если это нужно)
|
|
|
|
|
непосредственно в переменной <strong>auto_path</strong>.
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</dd>
|
|
|
|
|
|
|
|
|
|
<dt><strong>tcl_platform</strong></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Эта переменная является ассоциативным массивом, в элементах
|
|
|
|
|
которого содержится информация о платформе. Ниже содержится
|
|
|
|
|
список элементов массива (расширения и приложения могут
|
|
|
|
|
хранить информацию о себе в дополнительных элементах этого
|
|
|
|
|
массива).
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</dd>
|
|
|
|
|
|
|
|
|
|
<dt><strong>byteOrder</strong></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Исходный порядок байтов в слове: <strong>littleEndian</strong> или
|
2015-10-19 13:27:31 +03:00
|
|
|
|
<strong>bigEndian</strong>
|
|
|
|
|
</dd>
|
|
|
|
|
|
|
|
|
|
<dt><strong>machine</strong></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Набор команд, исполняемых на машине, например <strong>intel</strong>,
|
|
|
|
|
<strong>PPC</strong>, <strong>68k</strong> или <strong>sun4m</strong>. На Unix - платформах
|
|
|
|
|
совпадает с величиной, возвращаемой командой <strong>uname -m</strong>.
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</dd>
|
|
|
|
|
|
|
|
|
|
<dt><strong>os</strong></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Имя операционной системы, например <strong>Win32s</strong>, <strong>Windows
|
|
|
|
|
NT</strong>, <strong>MacOS</strong> или <strong>SunOS</strong>. На Unix - платформах
|
|
|
|
|
совпадает с величиной, возвращаемой командой <strong>uname -s</strong>.
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</dd>
|
|
|
|
|
|
|
|
|
|
<dt><strong>osVersion</strong></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Версия операционной системы. На Unix - платформах совпадает
|
|
|
|
|
с величиной, возвращаемой командой <strong>uname -r</strong>.
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</dd>
|
|
|
|
|
|
|
|
|
|
<dt><strong>platform</strong></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Может принимать одно из значений <strong>windows</strong>, <strong>macintosh</strong>
|
|
|
|
|
или <strong>unix</strong>.
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</dd>
|
|
|
|
|
|
|
|
|
|
<dt><strong>tcl_precision</strong></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd><p>Переменная управляет числом цифр при переводе десятичных
|
|
|
|
|
чисел в строки. Значение по умолчанию 12. Максимальное
|
|
|
|
|
значение 17 позволяет переводить числа из двоичного
|
|
|
|
|
представления в строковое и обратно без потери точности.
|
|
|
|
|
Однако при этом отключается округление. В результате команда
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</p>
|
|
|
|
|
<pre>
|
|
|
|
|
expr 1.4
|
|
|
|
|
</pre>
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p>вернет значение 1.3999999999999999, если tcl_precision
|
|
|
|
|
равна 17, и значение. 1.4 если tcl_precision равна
|
2015-10-19 13:27:31 +03:00
|
|
|
|
12.</p>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p>Все интерпретаторы в процессе используют одно и тоже
|
|
|
|
|
значение tcl_precision. Изменение точности представления
|
|
|
|
|
чисел в одном из интерпретаторов ведет к его синхронному
|
|
|
|
|
изменению во всех остальных. Однако, в надежных
|
|
|
|
|
интерпретаторах изменять точность нельзя.</p>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</dd>
|
|
|
|
|
|
|
|
|
|
<dt><strong>tcl_rcFileName</strong></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Эта переменная используется при инициализации для
|
|
|
|
|
определения имени пользовательского фала, исполняемого при
|
|
|
|
|
запуске. Для <a href=wish.html>wish</a> обычно ее значение
|
|
|
|
|
<strong>~/.wishrc</strong> для Unix платформ и <strong>~/wishrc.tcl</strong> для
|
|
|
|
|
Windows платформ. Если соответствующий файл найден, он
|
|
|
|
|
читается командой <a href=source.html><strong>source</strong></a>.
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</dd>
|
|
|
|
|
|
|
|
|
|
<dt><strong>tcl_rcRsrcName</strong></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Используется только на Macintosh платформах для задания
|
|
|
|
|
<strong>TEXT</strong> ресурса.
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</dd>
|
|
|
|
|
|
|
|
|
|
<dt><strong>tcl_traceCompile</strong></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Эта переменная позволяет управлять объемом информации,
|
|
|
|
|
формирующейся при компиляции Tcl в байт-код. По умолчанию
|
|
|
|
|
значение переменной равно 0 и никакая информация не
|
|
|
|
|
выводится. Если присвоить <strong>tcl_traceCompile</strong> значение 1,
|
|
|
|
|
то при компиляции каждой процедуры или команды верхнего уровня
|
|
|
|
|
на стандартный выход посылается одна строка комментариев. Если
|
|
|
|
|
присвоить <strong>tcl_traceCompile</strong> значение 2, то при
|
|
|
|
|
компиляции в стандартный вывод выдается подробный листинг. Это
|
|
|
|
|
бывает полезно при проблемах, возникающих в процессе
|
|
|
|
|
компиляции, особенно, при переводе старых программ на Tcl8.0.
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</dd>
|
|
|
|
|
|
|
|
|
|
<dt><strong>tcl_traceExec</strong></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Эта переменная позволяет управлять объемом информации,
|
|
|
|
|
выводящейся при исполнении байт-кода. По умолчанию
|
|
|
|
|
<strong>tcl_traceExec</strong> равна 0 и никакая информация не
|
|
|
|
|
выводится. Если присвоить <strong>tcl_traceExec</strong> значение 1, то
|
|
|
|
|
при исполнении процедур в стандартный вывод выдается одна
|
|
|
|
|
строка текста. Если присвоить <strong>tcl_traceExec</strong> значение 1,
|
|
|
|
|
то строка текста выдается также при выполнении каждой команды,
|
|
|
|
|
а если присвоить <strong>tcl_traceExec</strong> значение 3, то выдается
|
|
|
|
|
информация о выполнении каждой инструкции байт-кода. Это
|
|
|
|
|
бывает полезно при проблемах, возникающих в процессе
|
|
|
|
|
компиляции и исполнения, особенно, при переводе старых
|
|
|
|
|
программ на Tcl8.0.
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</dd>
|
|
|
|
|
|
|
|
|
|
<dt><strong>tcl_version</strong></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Эта переменная содержит номер версии Tcl в форме x.y.
|
|
|
|
|
Обычно изменение x может означать потерю совместимости с
|
|
|
|
|
предыдущими версиями, тогда как изменение y означает небольшие
|
|
|
|
|
улучшения и исправление ошибок. Значение переменной
|
|
|
|
|
возвращается командой <a href=
|
|
|
|
|
info.html#tclversion><strong>info</strong> <strong>tclversion</strong></a>.
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</dd>
|
|
|
|
|
</dl>
|
|
|
|
|
</body>
|
|
|
|
|
</html>
|
2018-02-05 17:22:04 +03:00
|
|
|
|
|