projman/hlp/ru/tcl/tclvars.html
2018-02-05 17:23:37 +03:00

289 lines
17 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN>
<html>
<head>
<title>tclvars</title>
</head>
<body>
<h1>tclvars</h1>
<p>Переменные, используемые Tcl.</p>
<h2>ОПИСАНИЕ</h2>
<p>Следующие глобальные переменные автоматически создаются при
запуске программ. Как правило, они ведутся автоматически и в
пользовательском приложении их значения не изменяются.</p>
<dl>
<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>.
</p>
<p>На Windows-платформах переменные <strong>PATH</strong>,
<strong>COMSPEC</strong> и <strong>WINDIR</strong> всегда пишутся в верхнем
регистре. Все остальные переменные оставляются в том виде, в
каком они заданы в операционной системе.</p>
<p>На Macintosh-платформах, на которых нет переменных
окружения, автоматически формируемый массив <strong>env</strong>, тем
не менее, содержит следующие элементы:</p>
<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>
<dt><a name=errorCode></a><strong>errorCode</strong> </dt>
<dd><p>При возникновении ошибки эта переменная содержит
дополнительную информацию об ошибке в форме, удобной для
автоматической обработки. Эта информация содержится в виде
списка из одного или более элементов. Первый элемент списка
содержит имя класса ошибки. Его значение определяет формат
остальной части списка. Стандартно используются следующие
классы ошибок (в приложении могут определяться и
дополнительные классы):</p>
<dl>
<dt><strong>ARITH</strong> <em>code</em> <em>msg</em></dt>
<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> (если не удается определить тип ошибки).
</dd>
<dt><strong>CHILDKILLED</strong> <em>pid</em> <em>sigName</em> <em>msg</em></dt>
<dd>Этот класс ошибки используется, если выполнение процесса
- потомка прервано сигналом. Второй элемент списка
(<em>pid</em>) содержит в этом случае идентификатор
прерванного процесса. Элемент <em>sigName</em> содержит
символьное имя сигнала, например <strong>SIGPIPE</strong>, а в
элементе <em>msg</em> содержит текст с описанием сигнала,
например &quot;write on pipe with no readers&quot;.
</dd>
<dt><strong>CHILDSTATUS</strong> <em>pid</em> <em>code</em></dt>
<dd>Этот класс ошибки используется, когда процесс - потомок
завершается с кодом ошибки. Второй элемент списка
(<em>pid</em>) содержит в этом случае идентификатор
прерванного процесса а третий элемент (<em>code</em>) -
значение кода ошибки.
</dd>
<dt><strong>CHILDSUSP</strong> <em>pid</em> <em>sigName</em> <em>msg</em></dt>
<dd>Этот класс ошибки используется, когда выполнение
процесса-потомка приостановлено из-за сигнала. Элементы
списка имеют тот же смысл, что и для <strong>CHILDKILLED.</strong>
</dd>
<dt><strong>NONE</strong></dt>
<dd>Этот класс используется для тех ошибок, для которых
дополнительная информация не может быть получена,
поскольку при попытке ее выдать произошла ошибка.
</dd>
<dt><strong>POSIX</strong> <em>errName</em> <em>msg</em></dt>
<dd>Этот класс используется для тех ошибок, которые
происходят при выполнении вызовов <strong>POSIX</strong>. Второй
элемент списка содержит символическое имя ошибки,
например, ENOENT, а в элементе <em>msg</em> содержит текст с
описанием ошибки, например, &quot;no such file or directory&quot;.
</dd>
</dl>
<dt><a name=errorInfo></a><strong>errorInfo</strong></dt>
<dd>При возникновении ошибки эта переменная содержит описание
команды или процедуры, в которой произошла последняя
ошибка. Описание построено в виде описания стека, указывающего
вложенные Tcl-команды, выполнявшиеся при возникновении ошибки.
</dd>
<dt><strong>tcl_library</strong></dt>
<dd>В этой переменной хранится имя каталога, содержащего
системную библиотеку Tcl-скриптов, используемых, в частности,
при автозагрузке. Величина этой переменной возвращается
командой <a href=info.html#library><strong>info</strong>
<strong>library</strong></a>. Начальное значение переменной формируется
в результате просмотра ряда каталогов и поиска в них
соответствующих скриптов. Если задана переменная окружения
<strong>TCL_LIBRARY</strong>, указанный в ней каталог проверяется
первым. Если переменная <strong>TCL_LIBRARY</strong> не задана или в ней
не содержатся необходимые файлы, то просматриваются еще
несколько каталогов, зависящих от расположения каталогов Tcl и
текущего каталога.
</dd>
<dt><strong>tcl_patchLevel</strong></dt>
<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>.
</dd>
<dt><strong>tcl_pkgPath</strong></dt>
<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>.
</dd>
<dt><strong>tcl_platform</strong></dt>
<dd>Эта переменная является ассоциативным массивом, в элементах
которого содержится информация о платформе. Ниже содержится
список элементов массива (расширения и приложения могут
хранить информацию о себе в дополнительных элементах этого
массива).
</dd>
<dt><strong>byteOrder</strong></dt>
<dd>Исходный порядок байтов в слове: <strong>littleEndian</strong> или
<strong>bigEndian</strong>
</dd>
<dt><strong>machine</strong></dt>
<dd>Набор команд, исполняемых на машине, например <strong>intel</strong>,
<strong>PPC</strong>, <strong>68k</strong> или <strong>sun4m</strong>. На Unix - платформах
совпадает с величиной, возвращаемой командой <strong>uname -m</strong>.
</dd>
<dt><strong>os</strong></dt>
<dd>Имя операционной системы, например <strong>Win32s</strong>, <strong>Windows
NT</strong>, <strong>MacOS</strong> или <strong>SunOS</strong>. На Unix - платформах
совпадает с величиной, возвращаемой командой <strong>uname -s</strong>.
</dd>
<dt><strong>osVersion</strong></dt>
<dd>Версия операционной системы. На Unix - платформах совпадает
с величиной, возвращаемой командой <strong>uname -r</strong>.
</dd>
<dt><strong>platform</strong></dt>
<dd>Может принимать одно из значений <strong>windows</strong>, <strong>macintosh</strong>
или <strong>unix</strong>.
</dd>
<dt><strong>tcl_precision</strong></dt>
<dd><p>Переменная управляет числом цифр при переводе десятичных
чисел в строки. Значение по умолчанию 12. Максимальное
значение 17 позволяет переводить числа из двоичного
представления в строковое и обратно без потери точности.
Однако при этом отключается округление. В результате команда
</p>
<pre>
expr 1.4
</pre>
<p>вернет значение 1.3999999999999999, если tcl_precision
равна 17, и значение. 1.4 если tcl_precision равна
12.</p>
<p>Все интерпретаторы в процессе используют одно и тоже
значение tcl_precision. Изменение точности представления
чисел в одном из интерпретаторов ведет к его синхронному
изменению во всех остальных. Однако, в надежных
интерпретаторах изменять точность нельзя.</p>
</dd>
<dt><strong>tcl_rcFileName</strong></dt>
<dd>Эта переменная используется при инициализации для
определения имени пользовательского фала, исполняемого при
запуске. Для <a href=wish.html>wish</a> обычно ее значение
<strong>~/.wishrc</strong> для Unix платформ и <strong>~/wishrc.tcl</strong> для
Windows платформ. Если соответствующий файл найден, он
читается командой <a href=source.html><strong>source</strong></a>.
</dd>
<dt><strong>tcl_rcRsrcName</strong></dt>
<dd>Используется только на Macintosh платформах для задания
<strong>TEXT</strong> ресурса.
</dd>
<dt><strong>tcl_traceCompile</strong></dt>
<dd>Эта переменная позволяет управлять объемом информации,
формирующейся при компиляции Tcl в байт-код. По умолчанию
значение переменной равно 0 и никакая информация не
выводится. Если присвоить <strong>tcl_traceCompile</strong> значение 1,
то при компиляции каждой процедуры или команды верхнего уровня
на стандартный выход посылается одна строка комментариев. Если
присвоить <strong>tcl_traceCompile</strong> значение 2, то при
компиляции в стандартный вывод выдается подробный листинг. Это
бывает полезно при проблемах, возникающих в процессе
компиляции, особенно, при переводе старых программ на Tcl8.0.
</dd>
<dt><strong>tcl_traceExec</strong></dt>
<dd>Эта переменная позволяет управлять объемом информации,
выводящейся при исполнении байт-кода. По умолчанию
<strong>tcl_traceExec</strong> равна 0 и никакая информация не
выводится. Если присвоить <strong>tcl_traceExec</strong> значение 1, то
при исполнении процедур в стандартный вывод выдается одна
строка текста. Если присвоить <strong>tcl_traceExec</strong> значение 1,
то строка текста выдается также при выполнении каждой команды,
а если присвоить <strong>tcl_traceExec</strong> значение 3, то выдается
информация о выполнении каждой инструкции байт-кода. Это
бывает полезно при проблемах, возникающих в процессе
компиляции и исполнения, особенно, при переводе старых
программ на Tcl8.0.
</dd>
<dt><strong>tcl_version</strong></dt>
<dd>Эта переменная содержит номер версии Tcl в форме x.y.
Обычно изменение x может означать потерю совместимости с
предыдущими версиями, тогда как изменение y означает небольшие
улучшения и исправление ошибок. Значение переменной
возвращается командой <a href=
info.html#tclversion><strong>info</strong> <strong>tclversion</strong></a>.
</dd>
</dl>
</body>
</html>